为什么Imagemagick或GraphicsMagick在调整到较小尺寸时会增加PNG图像的MB大小?

为什么Imagemagick或GraphicsMagick在调整到较小尺寸时会增加PNG图像的MB大小?,imagemagick,graphicsmagick,Imagemagick,Graphicsmagick,我需要从png转换为png 我正在Mac OS X上使用ImageMagick 6.8.7-7来降低png的尺寸 下面是一个确切的例子:start.png:20866 × 8957=6.6MB start.png是一个详细的平面图,只是黑白的 转换start.png-调整16384x7033 out.png的大小 结果是out.png 16384 × 7033=36.9 MB (偶数转换start.png-调整16384x7033 out.jpg=>out.jpg 22.7MB的大小) 如果我将

我需要从png转换为png

我正在Mac OS X上使用ImageMagick 6.8.7-7来降低png的尺寸

下面是一个确切的例子:start.png:20866 × 8957=6.6MB

start.png是一个详细的平面图,只是黑白的

转换start.png-调整16384x7033 out.png的大小

结果是out.png 16384 × 7033=36.9 MB (偶数转换start.png-调整16384x7033 out.jpg=>out.jpg 22.7MB的大小)

如果我将“pngquant”应用于out.png,我可以减少到15MB

为什么会出现这种增长

我正在寻找一个转换选项,它不会增加out.png的大小

编辑 如果我能提供更多的信息也许会有帮助。。。 我对这两个文件执行了“identify-verbose”,得到了以下输出:


**OUT.png

Image: out.png
Format: PNG (Portable Network Graphics)
Mime type: image/png
Class: DirectClass
Geometry: 16384x7033+0+0
Resolution: 98.43x98.43
Print size: 166.453x71.4518
Units: PixelsPerCentimeter
Type: TrueColor
Endianess: Undefined
Colorspace: sRGB
Depth: 8-bit
Compression: Zip
Orientation: Undefined
Properties:
date:create: 2014-01-19T09:55:41+01:00
date:modify: 2014-01-19T09:55:41+01:00
png:bKGD: chunk was found (see Background color, above)
png:cHRM: chunk was found (see Chromaticity, above)
png:iCCP: chunk was found
png:IHDR.bit-depth-orig: 8
png:IHDR.bit_depth: 8
png:IHDR.color-type-orig: 2
png:IHDR.color_type: 2 (Truecolor)
png:IHDR.interlace_method: 0 (Not interlaced)
png:IHDR.width,height: 16384, 7033
png:pHYs: x_res=9843, y_res=9843, units=1
png:text: 3 tEXt/zTXt/iTXt chunks were found
Profiles:
Profile-icc: 2576 bytes
Artifacts:
filename: out.png
verbose: true
Tainted: False
Filesize: 36.89MB
Number pixels: 115.2M
Pixels per second: 38.54MB
User time: 2.980u
Elapsed time: 0:03.990
Version: ImageMagick 6.8.7-7 Q16 x86_6*

文件大小增加的原因是调整大小操作增加了颜色的数量。您可以用“-sample WxH”替换“resize WxH”,以仅使用现有(黑白)颜色


如果您使用的是ImageMagick,那么也可以使用“-define png:exclude chunk=iCCP”删除ICC配置文件,因为它在黑白图像中没有多大用处。此选项在GraphicsMagick中尚不可用。

png类似于zip—您可以指定所需的压缩级别。更少的压缩=更快的文件生成,但通常比更高压缩的文件需要更多的空间-这反过来需要更多的cpu时间,但会给您一个更小的文件实际上我在convert上尝试了一些压缩选项,如05等。有时这会将out.png增加到100MB。你知道一个好的压缩值吗?它从“调色板”变为“真彩色”。。。这可能与此有关吗?在不知道我在做什么的情况下,我尝试转换start.png-type palete-resize 16384x7033 out.png,但得到一个错误转换:“paleted image`out.png'@error/png.c/MagickPNGErrorHandler/1804需要有效的调色板。”添加png8:filename有帮助
Image: out.png
Format: PNG (Portable Network Graphics)
Mime type: image/png
Class: DirectClass
Geometry: 16384x7033+0+0
Resolution: 98.43x98.43
Print size: 166.453x71.4518
Units: PixelsPerCentimeter
Type: TrueColor
Endianess: Undefined
Colorspace: sRGB
Depth: 8-bit
Compression: Zip
Orientation: Undefined
Properties:
date:create: 2014-01-19T09:55:41+01:00
date:modify: 2014-01-19T09:55:41+01:00
png:bKGD: chunk was found (see Background color, above)
png:cHRM: chunk was found (see Chromaticity, above)
png:iCCP: chunk was found
png:IHDR.bit-depth-orig: 8
png:IHDR.bit_depth: 8
png:IHDR.color-type-orig: 2
png:IHDR.color_type: 2 (Truecolor)
png:IHDR.interlace_method: 0 (Not interlaced)
png:IHDR.width,height: 16384, 7033
png:pHYs: x_res=9843, y_res=9843, units=1
png:text: 3 tEXt/zTXt/iTXt chunks were found
Profiles:
Profile-icc: 2576 bytes
Artifacts:
filename: out.png
verbose: true
Tainted: False
Filesize: 36.89MB
Number pixels: 115.2M
Pixels per second: 38.54MB
User time: 2.980u
Elapsed time: 0:03.990
Version: ImageMagick 6.8.7-7 Q16 x86_6*