Rails MiniMagick 如何获取信息:值?

问题描述 投票:0回答:1

我想从图像中删除黑条,发现 bash 脚本运行良好

margin=$(convert input.jpg -fuzz 10% -set page "%[@]" -format "%[fx:h-page.height-page.y]" info:)
magick input.jpg -gravity South -chop 0x$margin -gravity North -chop 0x$margin output.jpg
convert input.jpg -fuzz 10% -set page "%[@]" -format "%[fx:h-page.height-page.y]" info:

返回例如

140
,它是黑条的像素大小 但我不能使用 ruby 接口来获取这个值

convert = MiniMagick::Tool::Convert.new
convert << "test.jpg"
convert.fuzz("10%")
convert.set('page "%[@]"')
convert.format("%[fx:h-page.height-page.y]")
convert << "info:"
convert.call

此命令返回

test.jpg[0] JPEG 1920x1080 1920x1080+0+0 8-bit sRGB 57180B 0.010u 0:00.018\n%[fx:h-page.height-page.y][1] JPEG 1920x1080 1920x1080+0+0 8-bit sRGB 47180B 0.010u 0:00.009

如何取回保证金价值?该字符串不包含 140

但是如果我打电话

convert.command.join ' '

并得到

convert test.jpg -fuzz 10% -set page %[@] -format %[fx:h-page.height-page.y] info:

并在bash中执行它将返回140

ruby-on-rails ruby imagemagick minimagick
1个回答
0
投票
convert = MiniMagick::Tool::Convert.new
convert << "test.jpg"
convert.fuzz("10%")
convert.set 'page', '%[@]'
convert.format '%[fx:h-page.height-page.y]'
convert << "info:"
convert.call

这将返回正确的值。感谢 chatgpt 为参数定位提供帮助

© www.soinside.com 2019 - 2024. All rights reserved.