【问题标题】:ImageMagick - Resize image to squareImageMagick - 将图像大小调整为正方形
【发布时间】:2010-01-25 05:01:26
【问题描述】:

我刚刚开始做一些 ImageMagick 工作。我目前正在尝试将图像从几乎是正方形(1411 x 1486)或类似大小的文件大小转换为正方形,例如 1024x1024 不幸的是,调整大小功能似乎没有调整画布的大小,所以我不断得到像 1024x982 这样的数字。我想知道是否有任何方法可以使用他们的 c++ 库将不那么方形的图像转换为方形图像。

它们不是方形的原因是因为我正在将 GPS 位置转换为 UTM 并获得方形,但不幸的是,由于地球的曲线,它们通常距离方形大约 400 米...以防您想知道。

【问题讨论】:

    标签: image resize imagemagick


    【解决方案1】:

    使用1024x1024! 不会填充缩略图。

    这里是你想要的链接 http://www.imagemagick.org/Usage/thumbnails/#pad

    来自链接的命令行(防止链接腐烂):

    convert -define jpeg:size=200x200 hatching_orig.jpg -thumbnail '100x100>' \
              -background skyblue -gravity center -extent 100x100 pad_extent.gif
    

    【讨论】:

    • 谢谢!这做了我需要的:转换 original.png -thumbnail '64x64>' -gravity center -background transparent -extent 64x64 thumbnail.png
    【解决方案2】:

    您可以添加一个!到您的几何图形,例如“1024x1024!”调整大小或为调整大小方法创建显式几何。您可能还需要通过 !应该这样做(我已经读到有些人需要这样做,但是没有对你的解释)。

    【讨论】:

      【解决方案3】:

      我照约书亚说的做了。它适用于一张图片。 (感谢约书亚)

      我还想添加批量调整大小的解决方案,因为

      convert -resize 1024x1024! *.png
      

      没用


      所以这里有一个工作示例的示例命令。

      mkdir scaled
      for %%x in (*.png) do convert -resize 1024x1024! %%x .\scaled\%%x
      

      【讨论】:

      • 是 %%x 有效的 Bash 语法吗?不应该是$x之类的东西吗?您是否使用与输入文件相同的输出文件?如果是这样,您应该使用 mogrify 而不是 convert,这在这种情况下效果不佳...
      • 在 windows 中使用 %%x 是可以的。 ----对于第二个问题,还有一个问题。您提供的输出文件在后面的步骤中将成为输入文件,因此此过程将永远进行。而不是将它们放入文件夹是一个更好的主意,我现在将编辑答案。
      • @luca 如果你想要 bash,你会做 for x in *.png; do convert -resize '1024x1024!' $x ./scaled/$x; done
      • 尝试 mogrify 进行批处理而不是转换。
      猜你喜欢
      • 1970-01-01
      • 2015-11-21
      • 1970-01-01
      • 2015-07-19
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多