2011-08-11 9 views
3

私のプログラムはこの形式のみを扱うので、(多くの)JPEG画像をSun Raster形式(例えばhereを参照)に変換したい。ImageMagick:BGRの順番でピクセルを書き込む

私のプログラムでは、古い または標準の画像、つまりBGRの順序で書かれたピクセル(私はそれを変更する必要がありますが、時間はありません)の画像しか扱わないことが問題です。 デフォルトでは、ImageMagickはRGB形式のファイルを生成します。

カラープレーンを交換するのにtrickが見つかりましたが、ファイルがRGBで書かれたスタイルであるため、気に入った色が得られます。

これはおそらくImageMagickに渡す簡単なオプションですが、見つけられませんでした。 アイデアはありますか?

convert (image_RGB.bmp -channel B -separate) \ 
    (image_RGB.bmp -channel G -separate) \ 
    (image_RGB.bmp -channel R -separate) -channel RGB -combine image_BGR.bmp 

あなただけのカットチャネルは、元の画像を形成し、逆の順序でそれらを書く:

答えて

1

私はどのようにRGB画像では赤と青の色を交換するアイデアを持っています。

+0

ありがとうございます。私はあなたの例を試したが、うまくいかない。あなたはその構文について確信していますか? –

+0

いずれにせよ、これは[このページ](http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=18202)のように聞こえる、つまりチャンネルを入れ替える。しかし、この場合、色は異なります。私の中では、それは単なる画像フォーマットの問題です。 –

+0

構文: "\"シンボルとブレークラインを削除しようとしましたが、わかりやすくするために追加しました。はい、チャンネルはスワップされています。スタンドアロンビューアで変換された画像を見ると、色が気に入っているようです。しかし、私はあなたのプログラムがそれを正しく読んで見ていると思ったのですが、なぜあなたは何か別のものを必要としますか? – moropus

3

色を交換する別の方法は、-color-matrixオプションを使用することです。例えば、BGRにRGBを変換するには:

convert input.png -color-matrix '0 0 1 
           0 1 0 
           1 0 0' output.png 

参考:ImageMagickの6ではhttp://www.imagemagick.org/Usage/color_mods/

1

、あなたは-swapコマンドで簡単にそれを行うことができます。ロゴ画像の赤と青のチャンネルを入れ替えます。 ImageMagickのの非常に古いバージョンではなくsRGBよりRGBを使用するために

enter image description here

convert logo.png -separate +channel \ 
-swap 0,2 -combine -colorspace sRGB logo_bgr.png 

enter image description here

Imagemagick 7では、変換するのではなくmagickを使用します。

0

私は太陽のラスタ形式の標準である場合にはImageMagickの

convert image.jpg image.sun 

または

convert image.jpg SUN:image.sun 

にBGR形式に変換するだろうと思っているだろう。 imagemagick.org/script/formats.phpを参照してください。

これを試しましたか?

これでうまくいかない場合は、my -swapコマンドを使用しますが、上記で使用したpngではなく.sunファイル形式で書き込みます。つまり、

convert logo.png -separate +channel -swap 0,2 -combine -colorspace sRGB logo_bgr.sun 
関連する問題