• 締切済み

透過指定のPNG8がビット深度32bitとなる理由

WEB用にIllustratorで作成した画像を,PNG-8形式で背景を透過するように保存したところ下記のようになり,自身でも調べたのですが不明でしたので質問させてください. (使用ソフト:Illustrator(CS4)OS:WIN XP) 1)Illustratorで「WEBおよびデバイス用に保存」→PNG-8形式選択→「透明部分」にチェック→保存 ビットの深さは32bitと表示される(プロパティから確認) 2)透過を指定しないとビット深度は8bitと表示される PNG-24であれば,RGB各8bitとαチャネル8bitで32bitとなるのは理解できるのですが PNG-8では透過を指定しても,ビット深度は8bitなのではないかと思うのです. なぜ,透過指定したPNG-8が,32bitと表示されるのでしょうか. 思い違いもあるかと思うのですが,ご存知の方がいらっしゃいましたら ご教授いただきたくよろしくお願い致します.

みんなの回答

  • cutephoto
  • ベストアンサー率48% (51/105)
回答No.3

>tRNSチャンクの情報は、アルファチャネルとして扱われるため、深度が32bitと表示される。 ということでしょうか。 カラータイプが単純なグレーやRGBの時に、tRNSに透過情報が使われます。 アルファチャンネルを使う場合には、アルファチャンネルを使うため tRNSは使われません。 イラストレータなどでの透過の場合には、 内部的にマスクが作られていて、これが透過情報になっています。 結果、RGB+アルファチャンネルとなってしまいます。 なのでこのtRNSには何も入っていないか、 仕様では不要としているのでtRNSそのものが 存在していないと思います。 ※バイナリ・エディタなどでtRNSを検索してみてください。 イラストレータやフォトショップでは、 この情報を表示出来ないみたいですが、 GIMPなどで表示をするとアルファチャンネルが存在していることがわかるかと思います。 何故、RGB透過を一切採用せずに 全てRGB+アルファチャンネルという方式なのかについては、 これまでのPNGフォーマットの仕様が出来るまでの経緯や、 アドビでのソフト開発者がどう考えているのかまでは わかりませんので、お答え出来ません。 ※GIFの特許の問題が絡んでいたのかもしれませんし・・・。 RGB+アルファチャンネルなのかについての憶測ですが、 RGB透過(tRNS)だと1つの透過情報しか持つことが出来ません。 それに対し、アルファチャンネルだと複数の透過(マスク)情報を持つことが出来る為、 このRGB+アルファチャンネルを採用しているのでは? ※実際に複数の情報を操作出来るかどうかは、やったことがないのでわかりませんが、  PNGの仕様では複数のアルファチャンネルを持つことや、不透明度を指定することが出来ます。 勿論、1色だけでの透過でしたら無意味にファイルサイズが大きくなってしまいますが・・・。

koo1295
質問者

お礼

ご丁寧にご回答頂きありがとうございます.おかげさまで理解が増してきました.  カラータイプが単純なグレーやRGBの時に、  tRNSに透過情報が使われます。アルファチャンネルを使う場合には、アルファチャンネルを使うためtRNSは使われません。  イラストレータなどでの透過の場合には、内部的にマスクが作られていて、これが透過情報になっています。結果、RGB+アルファチャンネルとなってしまいます。 なるほど.イメージができてきました.  なのでこのtRNSには何も入っていないか、  仕様では不要としているのでtRNSそのものが  存在していないと思います。 バイナリデータについて当方詳しくはわからないのですが, 透過指定したPNG8についてバイナリエディタで見てみたところ,tRNSチャンク部分は, 「74 52 4e 53 ff ff ff ff ff ff ff ff ff ff ff ff~ 00」と表示されてありました. (アルファチャネルのあるPNG24では,お話の通りtRNSの記載が見当たりませんでした) また(GIMPは使用したことがなかったので)AzConvPNGというソフトで見たところ,透過指定したPNG8は,「アルファなし」と表示されておりました. そこで調べてみて気付いたのですが,WINDOWS 7にて,当該ファイル(32bitと表示される透過指定したPNG8)のプロパティを見ましたところ,ビット深度は8と表示されてありました. このことから,もしかすると32bitと表示されてしまうのは, WIN XPが関係する可能性もあるかと思ったりもするのですが…. (Microsoft answersにも,このトピックを見つけられなかったので詳細は不明のままです)

  • cutephoto
  • ベストアンサー率48% (51/105)
回答No.2

言われている通りtRNSチャンクに透過の情報が入ります。 そこまで調べたのでしたら、仕様にカラータイプというのもあったかと思いますが、 グレー、インデックスカラー、トゥルーカラーの3つが有ったと思います。 Significant bits(sBIT)のところを調べるとわかるかと思いますが、 インデックスカラーであれば透過の為の情報は深度8なのですが、 アルファチャンネルとして扱われると、 仕様上トゥルーカラー+アルファという深度しか存在しない為です。 なので、イラストレータでは、 この透過情報に関してGIFのように、RGBでの透過を使わずに アルファチャンネルで行う為に ビット深度が8では無く32となってしまうのではないでしょうか? RGBでの透過であれば、深度は8になると思います。 ただその様な状態での透過を扱える仕様になっているソフトがあるのか無いのかまでは わかりません。

koo1295
質問者

お礼

ご回答頂きありがとうございます。 少しずつ理解が進んできたように思います。確認させて頂ければと思うのですが、 Illustratorをつかって、透過指定したpng8を保存した場合、 tRNSチャンクの情報は、アルファチャネルとして扱われるため、深度が32bitと表示される。 ということでしょうか。 (Illustrator独自の処理の仕方なのでしょうか、不思議です…)

  • cutephoto
  • ベストアンサー率48% (51/105)
回答No.1

8ビットでも24ビットでも アルファチャンネルのビット位置が、 25ビットから32ビットの8ビットとなっている為です。 なのでどちらの場合でも深度が32となってしまいます。

koo1295
質問者

お礼

ご回答ありがとうございます。 度々すみませんが、もう少し質問させてください。 「アルファチャンネルのビット位置が、25ビットから32ビットの8ビットとなっている」 とは、png8の場合は、9~24bitまでは空いていても、α値を指定する部分(25~32bit)に(不)透明度を示す数値が入る、ということでしょうか。 そして調べていたところ、「tRNS チャンク」という記載を見たのですが、これがそのお話にある「アルファチャンネルのビット位置」にあたるのしょうか。

関連するQ&A

  • Fireworksで8bitの透過PNGの書出し

    Fireworksで、8bitの透過PNGの書き出しをしたいのですが、 透過させたくない白い部分まで透過してしまい、うまくいきません。 かなりのFireworks初心者で、きれいに書き出す方法をネットで調べてみたのですが、 分からず困っております。 作業詳細 ---------------- 最終的に欲しいデータ : Fireworks形式のPNG(8bit) 作業環境:Windows XP、Fireworks CS3、Photoshop CS3 作業手順: (1)Photoshopにて複数の画像を作成  ドロップシャドウなどを適用している透過画像もあるので、  「Webおよびデバイス用に保存」でPNG-24で書き出します。 (2)作成した画像をFireworksで、ある決まったテンプレート(PNG)にレイアウトします。 (3)書き出し設定  「最適化」WindowにてPNG 8 を選択。    (3)「書き出し」からスライスの書き出しを行います。 ---------------- すると、PNG32では問題なく書き出せるのですが、 PNG 8 の場合は、透過させたくない白い部分まで色が抜けて透過してしまいました。 試しにPNG24で書き出そうとしたところ、今度は透過させたい部分まで透過されなくなり、 スライスの範囲通りに四角い形になってしまいました。 PhotoshopのPNG8ではドロップシャドウの部分などがきれいに透過されないことと、 最終的にFireworkのテンプレートも必要なので、 Photoshopだけで作業は完結できません。 説明が下手で恐縮ですが、 8bitの透過PNG(Fireworks)の書き出し方をお教えいただけますでしょうか。 よろしくお願いいたします。

  • photoshopでのPNG(4bit)での保存

    photoshopでのPNG(4bit-16色)での 保存方法をご存知の方がおられましたら 教えて下さい。 【web用に保存】からPNG形式で保存 しようとしたのですが、 PNG-8(8bit) PNG-24(24bit) しか選択肢がなく、どうしても 16色↓のパレットに (黒等の)余計な色が入ってしまいます。 (容量も元データのgifよりかなり大きくなる) もしくは他のソフトでPNG-4bit-透過色選択可で バッチ処理のあるフリーソフトを ご存知でしたら教えて下さい どなたか宜しくお願いします

  • テレビのビット深度について

    テレビのビット深度について教えて下さい。 現在テレビの勉強中ですが「現行フルHDの規格でビット深度が8-bit」との説明がネットにありました。 そこでビット深度の意味が分からなかったので、調べてみるとWebページに以下の文がありました。 「ビット深度は、1画素が表示できる色の数を表します。ビット深度が高いほど、たくさんの色を表示でき、より自然で滑らかなグラデーションを実現できます。8ビット表示の場合は約1677万色、10ビット表示の場合は、約10億7374万色もの色を再現可能です。」 そこで質問なのですが 上記を読むと、ビット深度は1つの画素で表現できる色の数なので、8ビットという事で、あくまでも1画素で256色表示できるという意味でその画素をいくつか組み合わせる事によって1677万色再現できるという解釈でよいでしょうか? それとも赤・緑・青の各3色について8bitという意味で計24bit。つまり1つの点で1677万7216色表現できるという事でしょうか? でもそれならビット深度24ってことになり8ではないですよね・・・。 非圧縮動画(RGB24)の説明もあり、訳が分からなくなりました・・。 この場合がビット深度24で1つの画素で1677万7216色表現できるという事なのか・・・1つの画素の中でそんな数の色が表現できるものなのか・・・。 すみません。長くなりましたが詳しい方がおられれば、教えていただけると有難いです。

  • 透過色を使用したPNGについて

    Photoshopで画像データを2種類作成しました。1つは透過色を使用していないもの、もう1つは透過色を使用したものです。作成後、エクスプローラを開いて2つのファイルのプロパティを参照すると、透過色未使用ファイルはビット深度8bit、透過色使用ファイルはビット深度32bitとなっておりました。 Photoshopで透過色を使用して作成したデータはビット深度は32ビットになるのでしょうか。詳しい方がいましたら、ご教授をお願い致します。 ちなみにPhotoshopのVersionは8.01、マシンOSはWindowsXP Proを使用しています。

  • CS6でのPNG形式の透過画像の作成編集について

    CS6のフォトショップとイラストレーターを使用してPNG形式の透過画像を作りたいのですが、スムーズに作成、編集する方法を教えてもらえると嬉しいです。 フォトショップ上で加工、編集している場合は背景がチェッカーフラッグのようなブロック状になっていて、透過としてPNGで保存でき、そのファイルは透過PNGとして使えます。 しかし、同じファイルをイラストレーターで開いて、編集、保存すると背景が真っ黒になってしまいます。保存時には「透明部分」にチェックを入れて保存しているのですが、うまく行きません。 合成のときに使いたいフリー素材がAI形式なので一旦イラストレーターを使う必要があります。 気になったのは、はじめからイラストレーターで作ったファイルは透過保存できる点です。 編集時の背景も異なっていて、イラストレーターで作っているファイルは背景は白、保存時は背景がブロックパターンになっています。フォトショップで作った透過PNGを開くと編集時から背景が真っ黒で、保存時も同じく黒です。 色の形式、CMYK、RGB、インデックスカラーなどの違いが影響しているのでしょうか? (それぞれの使い分けはよくわかりませんが、合成するときに合成不可だった場合、モードを変えると合成できたりするので、その際に触るくらいです) イラストレーターで絵を描くのは苦手なので、フォトショップのドット絵的な感じで絵を描いて、AI形式のフリー素材を合成して、透過PNGとして仕上げたいのですが、どのようにしたら上手く行きますでしょうか? よろしくお願いします。

  • 映像のビット深度について

    こんにちは。 「映像のビット深度」とは、「ピクセル毎のビット数」だと認識しています。 多くのWMV動画のビット深度は、24Bitとなっています。 ところが、ビット深度が24BitであるWMV動画を、 MP4形式に変換した場合、ビット深度がかならず8Bitになります。 ビット深度は、動画の形式によって決まるものなのでしょうか? また、ビット深度が24BitのWMV動画を、MP4形式に変換したところ、 8Bitになったのですが、実際に再生して両者を比べてみても、 画質に差はありませんでした。 ビット深度は、画質にさほど影響しないのでしょうか? 以上です。 よろしくお願い致します。

  • 透過pngにも種類ある? ソフトによって透過しない

    ■状況 ・透過pngを下記3ソフトで開いたら、Photoshopでしか透過した状態で開けませんでした ・Photoshopで開いたものを保存して、新たにVieasで開いたら、透過した状態で開けました ・ペイント ・Vieas ・Photoshop ■質問 ・透過png形式の中で、さらに何種類か形式が分かれているのでしょうか?(画像ヘッダ?) ・それはどこで判断すれば良いのでしょうか?

    • ベストアンサー
    • CSS
  • 8bit透過PNGを書き出すと劣化?する

    最後にソースを記載しますが、やりたいことは 8bitの透過PNG画像を複数枚読み込み、重ねた1枚の画像を出力する、ということなのですが、どうにも画質が劣化?してしまって解決法が見出せずにいます。 以下のソースで読み込んでいるPNG画像は8bitの透過PNG画像で、BufferedImage.TYPE_BYTE_INDEXEDのBufferedImageに書きだして保存しているだけ(のつもり)です。 それだけで読み込んだもの、書きだしたものの品質が大きく違ってしまっています。 Javaで画像を扱ったことがほとんど無いので、そもそもTYPE_BYTE_INDEXEDを使うとそういう結果になるのは仕方のないことなのか、というのもわかりません。 ちなみにTYPE_4BYTE_ABGRを使うと劣化なく出力されますが、32bitなので。。。 どうにか読んだ8bit透過PNG画像をそのままの品質で書きだす方法はないものでしょうか? アドバイスをお願いいたします。。 ※添付画像は左側が下記ソース中のsrc.pngにあたるもの、右側がdest.pngにあたるものです。 画像添付がjpegしかできなかったので透過していませんが、円形以外の白色部分は実際には透過しています。 -以下ソースです-------------------- public class ImageTest { public static void main() { BufferedImage pileupImg = null; try { pileupImg = ImageIO.read(new File("C:/src.png")); } catch (IOException e) { return; } PixelGrabber pg = new PixelGrabber(pileupImg, 0, 0, -1, -1, true); try { pg.grabPixels(); } catch (InterruptedException e){} Image img = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(256, 256, (int[])pg.getPixels(), 0, 256)); BufferedImage bi = new BufferedImage(256, 256, BufferedImage.TYPE_BYTE_INDEXED, (IndexColorModel)pileupImg.getColorModel()); Graphics g = bi.getGraphics(); g.drawImage(img, 0, 0, null); try { ImageIO.write(bi, "png", new File("C:/dest.png")); } catch (IOException e) {} return; } }

  • PaintShopPro6.02では透過PNGは?

    PaintShopPro6.02という古いソフトがありますが、png形式で保存してもバックは白になります。 試しに他のフリーソフト、Paint.NETで同様にpngで保存しますと、背景は透過になり、黒地のバックでも画像だけがきちんと表示されます。PaintShopPro6.02では、表示させたい画像の外枠は白い四角に 表示されてしまい、jpgでの保存と変わりがありません。PaintShopPro6.02では背景を透過にした画像は作成できないのでしょうか?もし、同じバージョンのペイントショップをお持ちの方がいたら、教えていただけますでしょうか。宜しくお願いいたします。

  • Photo Shop6.0でPNG-24の透過画像を作りたい

    OS windows2000 Photo Shop 6.0 で 画像をweb用に保存するとき、 PNG-24のインターレース画像を作りたいのですが、 この設定で画像を保存して、webに表示した時、透過部分がグレー色になって透過されません。 PNG-8とGIF画像は問題なく透過画像になるのですが、PNG-24はうまくいきません。 ご教授ください。

専門家に質問してみよう