ImageMagick はグレースケールを RGB に変換しません。

ImageMagick はグレースケールを RGB に変換しません。

ImageMagickを使用してサイズを変更し、画像をグレースケールからRGBに、jpgからpngに変換します。次のフラグを使用してRGBに変換します。https://stackoverflow.com/a/34875248

convert test.jpg -colorspace sRGB -type truecolor -resize 100x100^ -gravity center -extent 100x100 test.png

サイズ変更は動作し、jpgからpngとして機能しますが、画像はグレースケールのままです。なぜこれがうまくいかないのですか?

ベストアンサー1

あなたが言及した答えはJPEG出力ファイルを生成するためのものであり、PNG出力ファイルを生成するときに正確には適用されません。これは、主にPNGの作成者が書き込むことができる最小のファイルを決定するためにいくつかの最適化を実行するためです。画像は完全に灰色なので、不必要に大きなRGBファイルの代わりに単一チャンネルのグレースケールファイルを作成することに決めるのは無理ではありません。

これを上書きするには、次のようにしてPNGファイル形式をRGB888に強制することができます。

magick ...  PNG24:result.png

同様に、パレットモードを強制できます。

magick ...  PNG8:result.png

そして、チャンネルあたり16ビットRGBは次のようになります。

magick ... PNG48:result.png

チャネルあたり16ビットRGBAには、次のものが含まれます。

magick ... PNG64:result.png

おすすめ記事