防止ImageMagick转换为灰度 [英] Prevent ImageMagick converting to grayscale

查看:105
本文介绍了防止ImageMagick转换为灰度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Windows上使用ImageMagick-6.9.1来调整PNG文件的大小,然后再使用其他工具处理它。源文件是RGBA,但图像数据是灰度(所有像素对于R,G和B具有相同的值)。似乎ImageMagick正在检测到这一点,并将输出转换为灰度,即使我指定格式和颜色空间如下:

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已经验证了在几个不同的应用程序(包括Photoshop)中生成的输出格式是8位灰度。这是一个问题,因为后面的处理步骤无法处理灰度格式化和崩溃。向源添加色调可使过程成功完成,但我们需要能够处理未打印的原件。

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.

如何强制ImageMagick输出RGB格式的图像即使它检测到源是灰度的?

How can I force ImageMagick to output an RGB formatted image even if it detects that the source is grayscale?

更长的日志:(注意IHDR中从color_type 6到color_type 4的转换)

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


解决方案

您可以尝试使用 -define 强制输出图像类型为 PNG Color-Type 6 喜欢这样:

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

这篇关于防止ImageMagick转换为灰度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆