- 締切済み
ImageMagickのみでRGB->インデックス画像を作る方法は?
ImageMagick 6.4.0 をLinux(fedora10)で使用しています。 「ImageMagickツールのみを使用」して、 「ファイル拡張子を変えずに」RGBモードの画像(例:png)をインデックスモードに変更する方法を実現しているかたが居ましたら、 その方法を教えていただきたいと思います。 たとえば以下の例は、何れも簡単に RGBモード -> インデックスモードになりますが、 上記の前提条件から外れています。 ファイル拡張子を変えている例 convert rgb_img.png index_img.png8 他のツールとしてGIMPを使っている例 rgb_img.png をGIMPで開いて「画像」->「モード」->「インデックス」にしてファイル保存(index_img.png)する。 ---------- ImageMagickのコマンドやパラメータだけで処理したいので、ご教授のほどよろしくお願いします。 「ImageMagickでは不可能」という結果でも構いません。 なお、-channel や -alpha なども試しましたが、ImageMagickでは出力するファイル拡張子によってデフォルトのモードが設定されてしまう気がしています。(たとえば png ならRGBモードになってしまう) http://www.imagemagick.org/script/command-line-options.php
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- SortaNerd_
- ベストアンサー率59% (309/522)
No1です。 質問文を読み直してみたらpngはあくまで例だったのですね。そこを勘違いしていました。すみません。 ですが、pngに限って言えばどうやらpng8はpngと同じ形式のようです。 png8で書きだしたファイルの拡張子のみをpngに変えると、ペイントやFirefoxなどで正常に読み込めます。 また、Imagemagickでpng8からpngへのconvertを行わせてみたところ、ファイルの中身は(作成日時などの情報を除き)全く同じでした。 なのでpngに限って言えば、pngという拡張子のpng8ファイルを作らせれば目的のものができます。 他の形式でも使える方法を考えると、とりあえず思いつくのは convert rgb.hoge temp.png8 convert temp.png8 index.hoge の2段構えにする方法です。
- SortaNerd_
- ベストアンサー率59% (309/522)
convert rgb.png png8:index.png でできるようです。 convertを引数を付けずに実行すると使い方が表示されますが、その中に To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) と書いてありました。
補足
回答ありがとうございます。 ただし、ご指摘のconvertの説明は「ファイル名変更(拡張子名の変更)」を説明しているのだと思います。 つまり、convert rgb.png png8:index.png とは rgb.png -> index.png8 -> 拡張子名の変更 -> index.png を行なっているのだと思います。 つまり、次の2つの処理を1つの記述でおこなうことができる、という説明だと思います。(拡張子名の変更処理) (1)image情報を png -> png8に変換(拡張子によってファイル内容が変換される) convert rgb.png index.png8 (2)ファイル名(拡張子名)を変更(単なるコピー処理なのでファイル内容は変換されない) cp index.png8 index.png -----補足です。 pngとpng8の例は類似のimageであり、バイナリファイルなので、一見して違いが分かりにくいですが、 次の処理を行なえば、すぐに解ります。(xpm形式はテキストエディタで開けばファイル内容が見えますので・・・) 1.赤画像をpngで作る。 convert -size 100x100 xc:'#FF0000' image1.png 2.ImageMagickの補足説明をやってみる。 convert image1.png xpm:image2.png 出来上がったimage2.pngの内容はpngファイルではない。(xpmファイルである) つまり、上記の処理は次の処理を行なっているに過ぎない。 convert -size 100x100 xc:'#FF0000' image1.png convert image1.png image3.xpm cp image3.xpm image4.png 出来上がったimage3.xpmとimage4.pngは拡張子は異なるが、ファイル内容は同じxpm形式になっている。 結論としては、拡張子が異なるだけでimage2.png、image3.xpm、image4.pngの3つのファイル内容は、どれもxpm形式ですので、 「安易にconvert rgb.png png8:index.png のような記述をしてはいけない」ということになります。(index.pngはpng8形式なのに、ファイル名だけで判断するとpng形式と誤解してしまう)