【问题标题】:Get offset from Imagemagick trim从 Imagemagick 修剪中获取偏移量
【发布时间】:2014-06-27 23:30:56
【问题描述】:

我正在使用 Imagemagick 修剪一些 png 文件(去除透明边框),我使用以下命令:

convert -debug Coder longyan_1.png -trim longyan_1.trimed.png

然后该工具给了我一个我想要的修剪图像,但我想要更多关于修剪偏移的信息。

在调试信息中,我可以看到以下行:

2014-05-10T14:32:42+08:00 0:04.860 4.840u 6.8.7 Coder convert[49089]: png.c/WriteOnePNGImage/10747/Coder
  Setting up oFFs chunk with x=181, y=118, units=0

“x,y”信息正是我想要的,但是调试信息太多了,有没有 Imagick 原生 API 或任何其他技巧来获取偏移信息?

【问题讨论】:

    标签: bash image-processing imagemagick


    【解决方案1】:

    我认为您实际上需要 %@ 修剪框信息,您可以这样得到:

    convert image.png -format "%@" info:
    233x375+60+51
    

    或者同样,也许更简洁:

    identify -format "%@" image.png
    233x375+60+51
    

    所以,为了测试它,我创建了一个这样的图像:

    convert -size 400x200 xc:red -size 80x40 xc:yellow -gravity center -composite image.png
    

    然后询问 ImageMagick 它会如何修剪它:

    convert image.png -format "%@" info:
    80x40+160+80
    

    【讨论】:

      【解决方案2】:

      我确信有更复杂的方法可以做到这一点,但是,如果你只是得到偏移信息,你可以使用grep

      $ convert -debug Coder longyan_1.png  -trim longyan_1.trimed.png 2>&1 | grep "Setting up oFFs chunk"
         Setting up oFFs chunk with x=181, y=118, units=0
      

      如果您想进一步缩短和/或重新格式化输出,可以使用sed。例如:

      $ convert -debug Coder longyan_1.png  -trim longyan_1.trimed.png 2>&1 | sed -n '/Setting up oFFs chunk/ s/.*x=/x=/p' 
      x=181, y=118, units=0
      

      【讨论】:

        猜你喜欢
        • 2016-08-03
        • 2013-05-13
        • 2013-12-29
        • 1970-01-01
        • 2014-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多