SSブログ
RSS [RSS1.0] [RSS2.0]
共謀罪を含む改悪組織犯罪処罰法は
【「共謀罪」法 衆参両院議員の投票行動(東京新聞 2017/6/16)】

GIMPとPhotoFiltreの透過GIFで頭が混乱

 数日前から透過GIFのことで頭が混乱している。
 所謂「透過GIF」は256色以下の色で作られた画像の中の特定の色を透明化して画像の背景を透過表示する、というのが私の認識である。(参照)。透過GIFを作成するソフトには使われている256色のパレットを表示して透明化したい色を選択するものもある。だから、拡張子が「.gif」で背景の一部が透けて見える画像があったら、256色の内の一つが表示されてないだけで、表示しない色を変更したら透明化していた色が表示されて別の部分が透明になるのだと思っている。透明化を解除して再び同じ色を透明化したら同じように透過表示されるのだと思っている。
 しかし、GIMP Portable 2.6.6(以下「GIMP」と記す)で作成した透過GIF画像をPhotoFiltre 6.3.2(以下「PhotoFiltre」と記す)で加工したときに異常事態が発生し、頭が混乱した。

 まずはGIMPで背景を青にして赤い文字の画像を作成する。GIF形式で保存したのが下の画像である。

青地に赤のGIF画像

 レイヤーが自動的に統合されるので、保存した後に再びGIMPで開くとレイヤーの数が一つに減っていることが分かる。このGIF画像から作業を続ける。
 「色」メニュー(あるいは「レイヤー」メニューの「透明部分」の中)の「色を透明度に」を使えるようにするために「インデックス」になっていた画像モードを「RGB」に変更する。すると一つだったチャンネルが赤青緑の3つになる。緑のチャンネルは真っ黒で、赤のチャンネルは黒地に白で、青のチャンネルは白地に黒である。(ドックのチャンネルタブの中のチャンネルをクリックすると、私のように使い慣れてない人はトラブルの元になるので触らない方が良い。)
 次に「色」メニュー(あるいは「レイヤー」メニューの「透明部分」の中)の「色を透明度に」を使って青を透明にする。その画像をGIF形式で保存したのが下の画像である。

透明な地に赤のGIF画像

 この時、ドックのチャンネルタブを見ると、「アルファ値」というチャンネルが増えて、それは黒地に滲んだ白の像になっている。赤のチャンネルは黒地に白だが白い部分が膨らんでいる。緑と青のチャンネルは真っ黒になっている。素人の私には意味不明であるが、とりあえず次に進む。
 透過GIFとして保存した上の画像を再びGIMPで開くと「インデックス」というチャンネルの他に真っ黒の「アルファ値」というチャンネルが存在する。「レイヤー」メニューの「透明部分」の中の「アルファチャンネルを削除」を実行すると、下のように画像が真っ赤になる。(追記:解決法→【GIMPで加工する透過GIFではカラーマップに注意】

赤地に赤のGIF画像

 画像モードを「RGB」に変更した後にアルファチャンネルを削除すれば、透過GIFにする前の青地に赤の画像に戻る。(追記:注意:hiyokoさんのコメントをお読みください。青地に戻ったのはGIMPの設定で背景色を青にしていたからのようで、GIMPの背景色を白にした状態で同じことをすると白地に赤の画像になり、元には戻りません。)

 さて、問題はここからである。
 上で作成した透過GIF画像をPhotoFiltreで開く。ちゃんと透過GIFのままである(PNG形式の透過画像の内「PNG32」は透過PNGとして開けない。ただし、PhotoFiltreで透過PNGを作成することはできる→【PhotoFiltreのPNGについて】。しかし、保存前に「イメージ」メニューの「透過色」で透過色を指定する際に256色に減らされてしまう。この「PNG8」ならPhotoFiltreで透過PNGとして開ける)。
 PhotoFiltreで上で作成した透過GIF画像を開いた後に、「イメージ」メニューの「透明マスク」を見ると、カラーが青で「効果」の所は「なし」が選択されている。それが現状だと思って「OK」をクリックすると、次のように白地に黒の画像になる。

白地に黒のGIF画像

 透過GIFに関して「マスクを使う」というイメージが無かったので、これを見たときに頭が混乱し始めた。
 青を透明化した元の透過GIF画像を再び開いて、画像モードをRGBに変更しようとするが、透過GIFのままでは変更できないらしい。そこで、「イメージ」メニューの「透過色」で「透過度を無効にする」をチェックして「OK」をクリックする。これで青地に赤の画像になった。保存する。マイドキュメントで保存した画像を確認すると……、次のように真っ赤な画像になってしまった。

赤地に赤のGIF画像

 頭はさらに混乱した。
 青を透明化した元の透過GIF画像を再び開いて、「イメージ」メニューの「透過色」で「透過度を無効にする」にした後に、すぐに保存しないで画像モードをRGBに変更してから保存する。今度は無事である。

青地に赤のGIF画像

 画像モードがRGBでも保存するときにGIF形式を選択すると自動的にインデックスカラーになる。先にインデックスカラーに戻してから保存しても次のように無事だった。

青地に赤のGIF画像

 無事、青地に赤のGIF画像になったファイルを再びPhotoFiltreで開く。そして、「イメージ」メニューの「透過色」で青を透過色にする。これで赤い文字の透過画像が作成できた。保存する。マイドキュメントで保存した画像を確認すると……、次のように真っ黒な画像になってしまった。

黒地に黒のGIF画像

 頭はさらに混乱した。
 GIMPで作成した青地に赤の元のGIF画像を開いて、「イメージ」メニューの「透過色」で青を透過色にする。PhotoFiltreで見る限り、赤い文字の透過画像である。保存してマイドキュメントで確認すると……、やはり次のように真っ黒な画像になっていた。

黒地に黒のGIF画像

 PhotoFiltreでは青を透明色にした透過GIF画像を作成できない、というわけではない。
 まず、PhotoFiltreで次のように青地に赤のGIF画像を作成して保存する。

青地に赤のGIF画像

 再び開いて、「イメージ」メニューの「透過色」で青を透過色にする。PhotoFiltreで見る限り、赤い文字の透過画像である。保存してマイドキュメントで確認すると……、やはり次のように真っ黒な画像になっていた。

黒地に黒のGIF画像

 しかし、PhotoFiltreでは青を透明色にした透過GIF画像を作成できない、というわけではない。
 今度は、PhotoFiltreで青地に赤のGIF画像を作成したら、GIF画像として保存する前に、「イメージ」メニューの「透過色」で青を透過色にする。それから保存してマイドキュメントで確認すると……、次のように透過GIF画像が作成できる。

透明な地に赤のGIF画像

 しかし、PhotoFiltreで作った透過GIF画像も再び開いて、「イメージ」メニューの「透過色」で「透過度を無効にする」を実行した後に再び青を透過色にすると、やはり次のように真っ黒な画像になる。(追記:単に「名前を付けて保存」で保存するだけでも真っ黒な画像になる。)

黒地に黒のGIF画像

 この一連の作業で何が起こっているのか分からない。PhotoFiltreのバグだろうか(追記:青地に単純な赤の画像ではなく赤い画像の周囲をアンチエイリアス処理した画像なら、上記の問題が生じていないように思われる)。そもそも、透過GIFは256色のドットが並んでいる中から1色を透明にしただけだと思っていたのだが、「チャンネル」とか「マスク」とかが透過GIF画像作成の際に登場した時点で私の認識が誤りだったのかもしれないと思い始めた。256色のドットを並べるだけなら1枚のフィルムだが、「チャンネル」とか「マスク」とか呼ぶ別のフィルムを重ねているような感じである。
 透過GIFの仕組みを知らないから混乱しているのだが、透過GIFの仕組みを知らなければ混乱してしまう仕様が悲しい。Macintosh(OS9.2.2)で透過GIF画像を作成していたときは、そんなことは気にしてなかった。試しに、あるソフトを使って透過GIF画像の透明化する色を変えてみたが、問題なく画像を変更できた。

青地に透明のGIF画像

 「チャンネル」も「マスク」も気にする必要はない。そんなものがあることすら分からない。そんなソフトである。Windowsでもそのようなソフトを探さなければいけないのかもしれない。PhotoFiltreやGIMPで透過GIF画像を作れるからと安心していたのが間違いなのかもしれない。それともGIFではなくPNGを使うことに方針を変更すべきなのだろうか。私が作るような簡単な画像は256色で十分だし、写真のような綺麗な画像を圧縮する際にはJPEGがあるのでPNGなんか普及するはずがないと思って無視してきたのだが、使うことを真剣に検討すべき時が来たのかもしれない。

追記:
 既にGIF画像になっているファイルから透過GIF画像を作るには、JTrimが良さそうである。何度でも手軽に透明化する色を変更できる。

青地に透明のGIF画像

 PhotoFiltreを使い始める時にJTrimと比較して最終的にPhotoFiltreに決めたのだが、JTrimも必要だったかもしれない。ちなみに、PhotoFiltreに決めた理由は画像サイズ(印刷サイズ)を変えないままで解像度(600dpiや1200dpiなど)を変えられる(プリンタの解像度に合わせられる)からだった。

 ただし、JTrimで透過GIFを作成する際には次のような注意が必要らしい。

<透過GIF作成の際のトラブル>
GIF以外の画像(JPG,BMP,PNG など)を JTrim で開き、透過処理した後に GIF形式で保存すると、保存に失敗したり、透過されない場合があります。そんなときは、透過処理する前の元画像を一旦 JTrim で開いて何もしないで GIF形式で保存し、その保存した GIF画像を JTrim で開いて透過処理するとうまくいくと思います。
簡単に言えば、「透過GIF を作るときは、元画像を一旦 GIF形式にしてから透過処理」ということです。
(JTrim / GIF画像の透過)

 最新バージョンでも上記サイトで用意されているJPG画像で試したら透過GIF画像にならないトラブルが再現した。しかし、私の場合は作成後に保存してあるGIF画像を透過処理することが多いと思うので、上記のトラブルがあっても気にならないだろう。


nice!(0)  コメント(2)  トラックバック(0) 
カテゴリー:サイトを見て
共通テーマ:パソコン・インターネット

読者の反応

nice! 0

sonet-asin-area

コメント 2

hiyoko

GIMPについてチョット

RGBのチャンネルについて
チャンネルは色の割合を黒から白のグレースケールで表示します。
PC上の画像のデータは赤、緑、青、&アルファ(不透明度)で表示されます。
チャンネルの黒は0%、白は100%です。
アルファチャンネルは、完全透明は黒(0%)、完全不透明は白(100%)で表示されます。
GIFは完全透明と不透明のどちらかになり、半透明有りません。

1番目の「青地に赤のGIF画像」
インデックスカラーで、カラー情報は赤と青の2色のみです。
ウィンドウ>ドッキング可能なダイアログ>カラーマップ
で確認できます。
チャンネルはインデックスと表示され、プレビューはあまり意味が有りません。
色の情報についてはカラーマップで調べます。

RGBに変更するとチャンネルは
赤:赤い文字の部分が白(100%)、背景に赤は無いので黒(0%)で表示されます。
緑:背景にも文字にも使用していないので黒(0%)で表示されます。
青:文字の部分に青は無いので黒(0%)青い背景は白(100%)で表示されます。

青の色を透明にすると
透明な部分が出来た為アルファチャンネルが追加されます。
アルファ:文字が不透明なので白(100%)、背景が透明なので黒(0%)で表示されます。

2番目の「透明な地に赤のGIF画像」
インデックスカラーで、カラー情報は赤のみです。
ウィンドウ>ドッキング可能なダイアログ>カラーマップ
で確認できます。
チャンネルはインデックスと透明な部分がある為アルファチャンネルが表示されています。

インデックスカラーの状態でアルファチャンネルを削除すると
透明な部分はカラー情報が赤1色しかないので赤で塗り潰されます。

RGBに変更してアルファチャンネルを削除すると
透明な部分はツールボックスの背景色に設定している色に変更されます。
青に設定していれば当然青に変わります。
これはGIMPの仕様です。
by hiyoko (2009-11-11 03:23)

正己

hiyokoさん、詳しいコメントをありがとうございました。
GIMPの仕組みについてすっきりしたような気がします。
> RGBに変更してアルファチャンネルを削除すると
> 透明な部分はツールボックスの背景色に設定している色に変更されます。
> 青に設定していれば当然青に変わります。
さっき試してみました。
デフォルトの背景色は白なので白地に赤の画像になりました。
青地の赤の画像と元に戻ったと思ったのは錯覚だったのですね。
GIMPを閉じずに作業していたので背景色の青が保持されていたからのようです。
他のソフトで開くと確認できるように透明部分の色情報(青)は削除されていないと思うので、GIMPで青が削除されてしまうことにすっきりしませんが、GIMPを使う際に注意しなければいけないことが分かりました。
とても参考になりました。
ありがとうございました。m(_ _)m
by 正己 (2009-11-11 06:49)

コメントを書く 

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。
captcha

トラックバック 0

トラックバックの受付は締め切りました