I'm using ImageMagick-6.9.1 on Windows to resize a PNG file before processing it with another tool. The source file is RGBA, but the image data is grayscale (all pixels have the same value for R, G, and B). It appears that ImageMagick is detecting this, and converting the output to grayscale, even if I specify format and colorspace like so:
convert.exe src.png -format PNG32 -colorspace sRGB -background transparent -resize 830x540 out.png
I've verified the resulting output format is 8-bit greyscale in a couple different applications, including Photoshop. This is an issue because the later processing steps can't handle the grayscale formatting, and crash. Adding a tint to the source lets the process complete successfully, but we need to be able to process the untinted originals.
How can I force ImageMagick to output an RGB formatted image even if it detects that the source is grayscale?
Longer log: (note conversion in IHDR from color_type 6 to color_type 4)
>.\ImageMagick-6.9.1-2\identify.exe -verbose rgba_src.png
Image: rgba_src.png
Format: PNG (Portable Network Graphics)
Mime type: image/png
Class: DirectClass
Geometry: 884x747+0+0
Resolution: 28.35x28.35
Print size: 31.1817x26.3492
Units: PixelsPerCentimeter
Type: GrayscaleAlpha
Base type: GrayscaleAlpha
Endianess: Undefined
Colorspace: Gray
Depth: 8-bit
Channel depth:
gray: 8-bit
alpha: 8-bit
Channel statistics:
Pixels: 660348
Gray:
min: 0 (0)
max: 255 (1)
mean: 234.605 (0.920019)
standard deviation: 56.1418 (0.220164)
kurtosis: 11.312
skewness: -3.45486
entropy: 0.271262
Alpha:
min: 0 (0)
max: 247 (0.968627)
mean: 23.5875 (0.0924999)
standard deviation: 53.3361 (0.209161)
kurtosis: 2.71621
skewness: -2.02496
entropy: 0.206267
Alpha: graya(255,0) #FFFFFF00
Rendering intent: Perceptual
Gamma: 0.454545
Chromaticity:
red primary: (0.63999,0.33001)
green primary: (0.3,0.6)
blue primary: (0.15,0.05999)
white point: (0.31269,0.32899)
Background color: graya(255,1)
Border color: graya(223,1)
Matte color: graya(189,1)
Transparent color: graya(0,0)
Interlace: None
Intensity: Undefined
Compose: Over
Page geometry: 884x747+0+0
Dispose: Undefined
Iterations: 0
Compression: Zip
Orientation: Undefined
Properties:
date:create: 2015-04-21T11:15:21-07:00
date:modify: 2015-04-21T11:15:28-07:00
png:cHRM: chunk was found (see Chromaticity, above)
png:IHDR.bit-depth-orig: 8
png:IHDR.bit_depth: 8
png:IHDR.color-type-orig: 6
png:IHDR.color_type: 6 (RGBA)
png:IHDR.interlace_method: 0 (Not interlaced)
png:IHDR.width,height: 884, 747
png:pHYs: x_res=2835, y_res=2835, units=1
png:sRGB: intent=0 (Perceptual Intent)
signature: b30c82674d8ed7b50afbfd0eb86d37346164378ae92ef305b0ab61325e741f52
Artifacts:
filename: rgba_src.png
verbose: true
Tainted: False
Filesize: 207KB
Number pixels: 660K
Pixels per second: 34.76MB
User time: 0.016u
Elapsed time: 0:01.018
Version: ImageMagick 6.9.1-2 Q16 x86 2015-04-14 http://www.imagemagick.org
>.\ImageMagick-6.9.1-2\convert.exe rgba_src.png -verbose -format PNG32 -colorspace srgb -background transparent -resize 830x540 out.png
rgba_src.png=>out.png PNG 884x747=>639x540 639x540+0+0 8-bit sRGB 62.8KB 0.406u0:00.107
>.\ImageMagick-6.9.1-2\identify.exe -verbose out.png
Image: out.png
Format: PNG (Portable Network Graphics)
Mime type: image/png
Class: DirectClass
Geometry: 639x540+0+0
Resolution: 28.35x28.35
Print size: 22.5397x19.0476
Units: PixelsPerCentimeter
Type: GrayscaleAlpha
Base type: Grayscale
Endianess: Undefined
Colorspace: Gray
Depth: 8-bit
Channel depth:
gray: 8-bit
alpha: 8-bit
Channel statistics:
Pixels: 345060
Gray:
min: 0 (0)
max: 255 (1)
mean: 34.1198 (0.133803)
standard deviation: 77.4794 (0.303841)
kurtosis: 1.68768
skewness: 1.88484
entropy: 0.220331
Alpha:
min: 0 (0)
max: 237 (0.929412)
mean: 23.5888 (0.092505)
standard deviation: 53.2132 (0.208679)
kurtosis: 2.60073
skewness: -2.00769
entropy: 0.208417
Alpha: graya(0,0) #00000000
Rendering intent: Undefined
Gamma: 0.45455
Chromaticity:
red primary: (0.63999,0.33001)
green primary: (0.3,0.6)
blue primary: (0.15,0.05999)
white point: (0.31269,0.32899)
Background color: graya(0,1)
Border color: graya(223,1)
Matte color: graya(189,1)
Transparent color: graya(0,0)
Interlace: None
Intensity: Undefined
Compose: Over
Page geometry: 639x540+0+0
Dispose: Undefined
Iterations: 0
Compression: Zip
Orientation: Undefined
Properties:
date:create: 2015-04-21T11:41:45-07:00
date:modify: 2015-04-21T12:24:05-07:00
png:bKGD: chunk was found (see Background color, above)
png:cHRM: chunk was found (see Chromaticity, above)
png:gAMA: gamma=0.45455 (See Gamma, above)
png:IHDR.bit-depth-orig: 8
png:IHDR.bit_depth: 8
png:IHDR.color-type-orig: 4
png:IHDR.color_type: 4 (GrayAlpha)
png:IHDR.interlace_method: 0 (Not interlaced)
png:IHDR.width,height: 639, 540
png:pHYs: x_res=2835, y_res=2835, units=1
png:text: 2 tEXt/zTXt/iTXt chunks were found
png:tIME: 2015-04-21T11:15:28Z
signature: 3d4b5050f182dac93631d9119d76324d43f9a659ea035523a8e359b7434bdb5b
Artifacts:
filename: out.png
verbose: true
Tainted: False
Filesize: 62.8KB
Number pixels: 345K
Pixels per second: 57.51MB
User time: 0.000u
Elapsed time: 0:01.006
Version: ImageMagick 6.9.1-2 Q16 x86 2015-04-14 http://www.imagemagick.org
You might try using a -define
to force the output image type to PNG Color-Type 6
like this:
convert input.png ... -define png:color-type=6 output.png
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With