我正在编写一个GNU Makefile对图像进行一些处理。 一个任务是使用pnmscale命令通过SIZE参数缩放图像(.ppm格式)。图像应在不减小比例的情况下从较长的一侧缩放,并应保存为.scaled。
我已经阅读了pnmscale的手册页,但似乎找不到正确的选项。
我尝试了以下操作:
pnmscale -pixels 100 example.ppm > example.scaled
当example.ppm
的大小为200 x 100 pixels
且我以100 pixels
的大小运行pnmscale命令时,example.scaled
的大小应为100 x 50 pixels
。通过我的解决方案,图像变得很小。
答案 0 :(得分:0)
如manpage of pnmscale所述,选项pixels
指定最大输出像素总数。 pnmscale将图像缩小到该像素数。如果输入图像已经不超过这么多像素,则pnmscale只是将其复制为输出; pnmscale不能与-pixels一起放大。
换句话说,通过指定-pixels 100
,实际上是在将图像缩小到最大100个像素。您要实现的目标是将输入图像缩小到100 x 50 pixels = 5000 pixels
的大小。
再次查看manpage of pnmscale会得到以下结果:
pnmscale [{-xsize=cols | -width=cols | -xscale=factor}] [{-ysize=rows | -height=rows | -yscale=factor}] [pnmfile]
[...]
如果您将一个尺寸指定为像素尺寸,而未指定另一个尺寸,则pnmscale会缩放未指定的尺寸以保留宽高比。
在您的情况下,使用
pnmscale -xsize 100 example.ppm > example.scaled
应将输入图像缩小到100像素的宽度。