dポイントプレゼントキャンペーン実施中!

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-o …

A 回答 (2件)

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段構えにする方法です。
    • good
    • 0

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形式と誤解してしまう)

補足日時:2009/03/31 09:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!