アルファチャンネルのソースを表示
←
アルファチャンネル
移動先:
案内
、
検索
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
要求した操作を行うことは許可されていません。
このページのソースの閲覧やコピーができます。
'''αチャンネル'''(アルファチャンネル)とは画像処理分野において、各[[ピクセル]]に対し[[色]]表現のデータとは別にもたせた補助データのこと。一般に画素の不透明度を表現する。 PCにおいて、[[プリンター]]や[[ディスプレイ (コンピュータ)|ディスプレイ]]など、ほとんどの表示装置は[[RGB]](Red Green Blue)、[[CMYK]](Cyan Magenta Yellow Black)など、単色の組合せによって色を表現する。この各単色の明るさ、あるいは濃度を調整することによって人間が知覚する多くの色を表現できる。PC内部のデータでも同様の型式がとられている。 いくつかの画像データや画像ソフトでは、これらの表示される単色の他に、もうひとつ直接表示されない色のデータを追加できる。これをαチャンネルとよび、画像の[[マスク (曖昧さ回避)|マスク]]、複数画像の合成などに使われる。 [[映像編集]]技術における[[キー信号]]に相当する。 == 計算式 == [[Image:Alpha compositing.svg|center]] 一般にアルファチャンネルの計算は Thomas Porter および Tom Duff の[[1984年]]の論文に基づく<ref>[http://keithp.com/~keithp/porterduff/p253-porter.pdf Compositing Digital Images - Thomas Porter and Tom Duff - Computer Graphics Project Lucasfilm Ltd.]</ref>。 A および RGB の定義域は0〜1とする。A = 0 は透明で、A = 1 は不透明である。また、透明の画像は以下のように扱う。 :<math>A=0 \Rightarrow RGB=0</math> すると、src を dst へと、アルファチャンネルつきの画像を描画する計算式は以下の通り。<math>src_F</math> や <math>dst_F</math> の定義は後述。 :<math> \left\{ \begin{array}{l} out_A = src_A src_F + dst_A dst_F \\ out_{RGB} = (src_{RGB} src_A src_F + dst_{RGB} dst_A dst_F) \div out_A \end{array} \right. </math> この際、以下のように、A を RGB にあらかじめかけておくと、 :<math>out_{amp} = out_{RGB} \times out_A</math> 以下のように式が簡単になる。 :<math> \left\{ \begin{array}{l} out_A = src_A src_F + dst_A dst_F \\ out_{amp} = src_{amp} src_F + dst_{amp} dst_F \end{array} \right. </math> 積和算だけで計算できるようになるので、ビデオカード内部ではこのようにアルファチャンネルをかけておいて保持している。また、CPU で計算する際も、多くの CPU が積和算を高速に計算できるので、この形式で扱うと高速に処理できる。欠点は、各色を8ビットで保持した場合、Aが1より小さいとRGBの正確な値を保持できないことにあるが、現にほとんどのビデオカード・グラフィックスライブラリは正確に保持していない。 そして、<math>src_F</math> や <math>dst_F</math> の定義は以下の通り。SRC over DEST のように表記し、演算子は非[[可換]]であり交換法則は成立しない。 {| class="wikitable" |+ ! 演算 !! <math>src_F</math> !! <math>dst_F</math> |- ! clear | 0 | 0 |- ! source | 1 | 0 |- ! destination | 0 | 1 |- ! over | 1 | <math>1 - src_A</math> |- ! in | <math>dst_A</math> | 0 |- ! out | <math>1 - dst_A</math> | 0 |- ! atop | <math>dst_A</math> | <math>1 - src_A</math> |- ! xor | <math>1 - dst_A</math> | <math>1 - src_A</math> |- ! add | 1 | 1 |} 計算結果で ARGB が 1 を超えた場合は、1 とする。 論文では、特に有用なのは、over, in, out, add としていて、一般にグラフィックライブラリが無指定で描画する際は、over が使われ、これを特に[[アルファブレンディング]]と呼ぶ。 <math>dst_A = 0</math> の透明な画像に、over, out, xor, add, source で描画すると、src の内容がそのままコピーされる。 ==参照== <references /> {{DEFAULTSORT:あるふあちやんねる}} [[Category:画像処理]]
アルファチャンネル
に戻る。
案内メニュー
個人用ツール
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
その他
検索
案内
メインページ
コミュニティ・ポータル
最近の出来事
新しいページ
最近の更新
おまかせ表示
sandbox
commonsupload
ヘルプ
ヘルプ
井戸端
notice
bugreportspage
sitesupport
ウィキペディアに関するお問い合わせ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報