18

PNG-24 (透過性あり) 画像を 50% および 25% のサイズ (モバイル開発用) に変換するバッチ スクリプトがあります。通常、これらの画像には色が含まれていますが、色のない画像を変換しようとすると、ImageMagick は色空間プロファイルを「グレー」に変更し続けます。これにより、使用している 3D エンジン (Unity) で画像が台無しになります。

タイプ TrueColor、色空間 sRGB、および sRGB.icc プロファイル (OSX に含まれているもの) を使用するように強制しようとしましたが、気にしないようです。それでもグレーに変わります。

> convert old.png -profile srgb.icc -colorspace sRGB -type TrueColor new.png
> identify *.png
  old.png PNG 140x140 140x140+0+0 8-bit sRGB 3.68KB 0.000u 0:00.000
  new.png PNG 140x140 140x140+0+0 8-bit sRGB 256c 2.33KB 0.000u 0:00.000

ImageMagick はまだそれを 8 ビット sRGB 画像として識別しますが、その後に「256c」を付けます。これは、256 色に縮小したことを意味すると想定していますが、これも望ましくありません。OSX Preview.app で画像を見ると、Gray カラー プロファイルを使用していると表示されます。画像も視覚的に大きく異なります。

これが私が使用している画像です: https://dl.dropbox.com/u/59304/old.png

ここに重複した質問がありますImageMagick Reduces Colorspace to Grayですが、答えはうまくいきません。残念ながら、彼の答えにコメントするのに十分な評判がありません。JPGではなくPNGを使用しているため、私のケースは異なると思います。

Version: ImageMagick 6.8.0-7 2013-01-02 Q16 http://www.imagemagick.org
Features:  OpenCL 

編集-回答の1つで指定されているImageMagickフォーラムを読んだ後、PNG32:またはPNG24:を出力ファイルに追加するだけで問題が解決するように見えます。

4

2 に答える 2

11

RGBとしてグレースケールPNGを保持する適切な方法は使用することですPNG24:result.png

入力:

ここに画像の説明を入力

convert lena.png -colorspace gray PNG24:lenag_rgb.png

identify -verbose lenag_rgb.png

Image: lenag_rgb.png
  Format: PNG (Portable Network Graphics)
  Mime type: image/png
  Class: DirectClass
  Geometry: 256x256+0+0
  Units: Undefined
  Colorspace: sRGB
  Type: Grayscale

上記のように、タイプがグレースケールであるのに対し、カラースペースは RGB です。

ここに画像の説明を入力

JPG や TIFF などの他の画像形式の場合は、 と-define colorspace:auto-grayscale=false一緒に使用し-type truecolorます。

于 2019-03-17T21:54:37.483 に答える