源是RGBA PNG图像(color_type = 6,bit_depth = 8)。
我需要带有索引颜色和2个调色板项目的图像(color_type = 3,bit_depth = 1)。
我尝试使用ImageMagick,但只能使用1位灰度图像(color_type = 0,bit_depth = 1)或2位索引彩色图像(color_type = 3,bit_depth = 2),其中只使用了2种颜色。 / p>
根据PNG规范,这样的图像是可能的,但如何创建呢?
这是我想要转换的图片:
"convert input.png -type palette -depth 1 output.png"
的结果:
"convert input.png -type palette -depth 1 -colors 2 output.png"
两个结果都有bit_depth = 2,但第二个结果只使用2种颜色,可能有4种颜色。
答案 0 :(得分:2)
convert input.png -background white -type palette -depth 1 -colors 2 output.png
适合我。
(为什么-depth=1
还不够?不知道。)
BTW,tweakpng工具可用于检查此类事物。
更新:如果图像具有透明度,则可以通过明确删除它来使游戏更安全:
convert input.png -background white -flatten -type palette -depth 1 -colors 2 output.png
(您可以根据自己的喜好替换white
)
答案 1 :(得分:2)
使用以下3之一,从输出文件中的从最少到大多数辅助标记排序:
convert -colors 2 -define png:include-chunk=none -verbose input.png output.png
convert -colors 2 -define png:exclude-chunk=bkgd -verbose input.png output.png
convert -colors 2 -background #000000 -verbose input.png output.png
这个问题的根源是默认情况下ImageMagick使用白色background color (bKGD) PNG chunk标记图像(不必要地说),然后将此颜色添加到调色板中(如果它尚未存在),即使图像没有那种颜色的像素。转换为双色后,您的特定图像没有白色,因此不需要的背景颜色标记变为第3种颜色,不能再保存为1位索引彩色图像。另请参阅this from the author of IM。
其他人未能重现问题的原因可能是他们已经使用图像进行了测试,其中2种颜色中的一种恰好是白色。
-define png:include-chunk=none
的第一个选项通过根本不输出任何辅助PNG块(例如bKGD,gAMA,cHRM,tEXt,tIME)来避免此问题。像pngcrush -rem alla
一样。我更喜欢这样一个不那么混乱的文件(没有它IM即使它们不在输入文件中也会添加一些)。 注意:还有一个简单的-strip
选项should avoid most of these,但是从v6.9.3起,它不会因为错误而削减bKGD。
第二个-define png:exclude-chunk=bkgd
只删除有问题的背景块。
-background #000000
的第3个选项保留所有辅助PNG块,包括bKGD,但将其设置为黑色,是图像中存在的2种颜色之一,因此它仍然可以是1位。调整图像的颜色,其中既没有白色也没有黑色。
请注意,对于所有这些,我包括-verbose
开关。不过分冗长;只是从零行到两行状态输出,如果图像保持2色则你会注意到“2c”,否则就会注意到“3c”。它还会告诉您调色板减少是否有损。它还为大多数图像输出“8位sRGB”,甚至是每像素少于8位的调色板;这不是你对另一个答案@johnfound的评论中的错误,这不是指每个像素的比特,而是指每个颜色的比特组件。对于(稀有)深色图像,它可以超过8位。
答案 2 :(得分:0)
我认为您需要的命令是:
convert input.png -type palette -depth 1 output.png
如果没有,请发布您的输入图片,并说明您在何处/何处找到您所引用的color_type
和bit_depth
字段。
Exiftool告诉我:
ExifTool Version Number : 9.76
File Name : output.png
Directory : .
File Size : 2.3 kB
File Modification Date/Time : 2015:01:10 19:20:33+00:00
File Access Date/Time : 2015:01:10 19:21:46+00:00
File Inode Change Date/Time : 2015:01:10 19:20:33+00:00
File Permissions : rw-r--r--
File Type : PNG
MIME Type : image/png
Image Width : 640
Image Height : 427
Bit Depth : 1
Color Type : Grayscale
Compression : Deflate/Inflate
Filter : Adaptive
Interlace : Noninterlaced
Gamma : 2.2
Background Color : 1
Datecreate : 2015-01-10T10:21:30+00:00
Datemodify : 2015-01-10T10:21:30+00:00
Image Size : 640x427
ImageMagick identify
告诉我:
Image: output.png
Format: PNG (Portable Network Graphics)
Mime type: image/png
Class: PseudoClass
Geometry: 640x427+0+0
Units: Undefined
Type: Bilevel
Base type: Bilevel
Endianess: Undefined
Colorspace: Gray
Depth: 8/1-bit
Channel depth:
gray: 1-bit
Channel statistics:
Pixels: 273280
Gray:
min: 0 (0)
max: 255 (1)
mean: 1.90168 (0.00745755)
standard deviation: 21.9388 (0.0860345)
kurtosis: 129.1
skewness: 11.4499
Colors: 2
Histogram:
271242: ( 0, 0, 0) #000000 gray(0)
2038: (255,255,255) #FFFFFF gray(255)
Colormap entries: 2
Colormap:
0: ( 0, 0, 0) #000000 gray(0)
1: (255,255,255) #FFFFFF gray(255)
Rendering intent: Undefined
Gamma: 0.45455
Background color: gray(255)
Border color: gray(223)
Matte color: gray(189)
Transparent color: gray(0)
Interlace: None
Intensity: Undefined
Compose: Over
Page geometry: 640x427+0+0
Dispose: Undefined
Iterations: 0
Compression: Zip
Orientation: Undefined
Properties:
date:create: 2015-01-10T19:20:33+00:00
date:modify: 2015-01-10T19:20:33+00:00
png:bKGD: chunk was found (see Background color, above)
png:gAMA: gamma=0.45455 (See Gamma, above)
png:IHDR.bit-depth-orig: 1
png:IHDR.bit_depth: 1
png:IHDR.color-type-orig: 0
png:IHDR.color_type: 0 (Grayscale)
png:IHDR.interlace_method: 0 (Not interlaced)
png:IHDR.width,height: 640, 427
png:text: 2 tEXt/zTXt/iTXt chunks were found
signature: 3e08d7fea7bc7aeb0659ac2e2696084083d35ce30b0e3075dc561ad94259eaec
Artifacts:
filename: output.png
verbose: true
Tainted: True
Filesize: 2.33KB
Number pixels: 273K
Pixels per second: 27.33MB
User time: 0.000u
Elapsed time: 0:01.009
Version: ImageMagick 6.8.9-8 Q16 x86_64 2014-11-10 http://www.imagemagick.org