Imagemagick使用resample选项进行转换


2

我正在从更大的图像创建缩略图,并且已成功使用此命令一段时间:

convert FILE -resize "64x" -crop "64x64+0+16" +repage -strip OUTFILE

我还做了一些与问题无关的其他处理。我意识到这根本不会调整分辨率,所以如果我使用300dpi图像,它最终会在某些设备上显示得非常小。我想将其重新取样为72x72,所以我一直在尝试使用此命令:

convert FILE -resize "64x" -crop "64x64+0+16" +repage -strip -resample 72x72 OUTFILE

并且期望将300dpi的64x64图像重新采样为72dpi的64x64图像,但相反,我的尺寸和密度非常有趣。



这是原始和后处理文件的“识别”输出,没有重新采样:

coneybeare $ convert "aa.jpg" -crop "64x64+0+16" +repage -strip "aa.png"
coneybeare $ for image in `find . -type f`; do identify $image; identify -verbose $image | egrep "^  Resolution"; done
./aa.jpg JPEG 1130x1695 1130x1695+0+0 8-bit DirectClass 1.492MiB 0.000u 0:00.000
  Resolution: 300x300
./aa.png PNG 64x64 64x64+0+0 8-bit DirectClass 7.46KiB 0.000u 0:00.000
  Resolution: 118.11x118.11

这里是“使用重新采样识别命令的输出:

coneybeare $ convert "aa.jpg" -crop "64x64+0+16" +repage -strip -resample 72x72 "aa.png"
coneybeare $ for image in `find . -type f`; do identify $image; identify -verbose $image | egrep "^  Resolution"; done
./aa.jpg JPEG 1130x1695 1130x1695+0+0 8-bit DirectClass 1.492MiB 0.000u 0:00.000
  Resolution: 300x300
./aa.png PNG 15x15 15x15+0+0 8-bit DirectClass 901b 0.000u 0:00.000
  Resolution: 28.34x28.34





所以,问题是:我做错了什么以及如何修复它以便最终结果是在72dpi下的64x64裁剪缩略图?

Answers:


1

你已经采取了看看普通缩略图部分中的ImageMagick的用法网站?这是相当不错。那里的例子通常使用该thumbnail选项。从一般生成缩略图

这不仅可以调整图像大小,还可以删除原始JPEG图像中可能存在的任何和所有配置文件和注释信息。此外,由于它使用“-sample”调整大小运算符来初始缩小图像尺寸,因此速度相当快,并且可以为小缩略图生成良好的结果。

你是在这些图像周围放置某种边框吗?此外,IM中有一个“新”几何运算符^,即填充区域标志

从IM v6.3.8-3开始,IM现在有一个新的几何选项标志'^',用于根据最小的拟合尺寸调整图像大小。也就是说,调整图像大小以完全填充(甚至溢出)给定的像素区域。

所以你可以试试:

转换FILE -thumbnail 64x64 ^ -gravity center -extent 64x64 + 0 + 16 -strip OUTFILE

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.