You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rails的MiniMagick中获取info:返回的黑边像素值?

用MiniMagick获取图片黑边像素值的正确方法

你的问题核心是缺少了ImageMagick的info:输出目标参数,以及set方法的调用格式有误。

原Bash命令里的info:是告诉ImageMagick不要处理图片,而是把format指定的计算结果输出到标准输出。你的MiniMagick代码没加这个参数,所以默认返回了图片元信息,而非所需的margin值。

修正后的代码

convert = MiniMagick::Tool::Convert.new
convert << "test.jpg"
convert.fuzz("10%")
convert.set("page", "%[@]")  # 分开传递参数名和值,避免引号解析问题
convert.format("%[fx:h-page.height-page.y]")
convert << "info:"  # 关键:添加此参数触发计算结果输出
margin = convert.call.strip  # 去除空白,得到纯数字
puts margin

关键修正点

  1. 添加info:参数:这是让ImageMagick返回格式化计算值的核心,没有它会默认输出图片文件信息。
  2. 修正set方法调用:原代码convert.set('page "%[@]"')会生成带引号的参数page "%[@]",和Bash命令的page %[@]不一致,分开传递"page"和"%[@]"才能生成正确的命令。

验证命令正确性

修改后调用convert.command.join ' '会得到和原Bash完全一致的命令:

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

执行后就能得到类似140的黑边像素值,直接用于后续的裁剪操作即可。

内容的提问来源于stack exchange,提问作者Ivan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 06:32:41