今回は色の話です。
透明に関わる3つの言葉、opacity, transparency, そして alpha。
これらの意味、きちんと把握できていますか?
筆者は、できていませんでした。
反省の気持ちもこめて、ここにメモしておきたいと思います。
思い込み
次のように思い込んでいました。※部分的に誤りです!
- opacity : 不透明度。値が増えると不透明、値が0だと透明。
- transparency : 透明度。一般的な画像処理でtransparencyの値を指定することは無いが、もしも指定できるならopacityの逆となり、値が増えると透明。
- alpha : 透明度で、意味はtransparencyと同じ。但しこちらは画像処理の場面で値を指定することは多い。
さて、実際はどうなのでしょう。
opacity
意味は上記の思い込みの内容で合っています。但し、opacityを数値で指定するようなAPIはあんまり無いかも。
覚えにくい!という人は、 opaque という英語の形容詞も一緒に覚えておくとスッキリするでしょう。
opaqueの意味は「不透明な」とか「不明瞭な」とか。
transparency
これも、上記の思い込みの内容で正解です。
知らなかった人は transparent という英語の形容詞も一緒に知っておくと良いでしょう。
opaque よりも知ってる人は多いですよね?きっと。
CSSの色指定にも transparent
ってあるし。
意味はもちろん「透けて見える」とか「透明な」とかです。
alpha
筆者は、これの意味を勘違いしていました。
alphaは上記の2語、opacityとtransparencyのように元々英単語として存在した語とは違って、コンピュータグラフィックスの世界でしか用いられない語です。そしてご想像の通り、そもそもalphaという語そのものには「透明」とか「不透明」といった意味はありません。
じゃあalphaの値が増えたら透明になるの?不透明になるの?という話ですが、これは不透明になるというのが正解です。無理矢理日本語に訳すとしたら「不透明度」ということになります。opacityと同じになりますね。
一方で、日本語の「不透明度」を英語に訳すときにopacityとalphaのどちらを使うべきか?という話になると、通常はどちらも正解でしょう。ただし前述の通りalphaはコンピュータグラフィクスの用語であって、一般人に通じるかどうかと言われると激しく疑問ですので、一般人向けの文書やUIの中であればopacityの方が適切でしょう。また、画像合成の手法が alpha composition (詳細は後述のリンクへ)ではない場合に alpha という表現を使うのは間違いである可能性もあります。この意味でもopacityの方が適切であると言えます。
なんでalphaはalphaと言うの?
ggrks
というのは冗談ですが、実際のところは、筆者もよくわかってません。
アルファチャネルを使った画像合成手法を発展させた功労者 Thomas Porter, Tom Duff 両氏の論文の中でも
Let us call this an alpha channel
http://keithp.com/~keithp/porterduff/p253-porter.pdf
と書かれていて、語源については触れられていません。もしかすると見落としているだけかもしれませんが(※全文は読んでない)。。
参考リンク
アルファチャンネル - Wikipedia
Alpha compositing - Wikipedia
※英語版のWikipediaの方が詳しいです。
本の紹介

- 作者: STUDIO SHIN
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2013/05/28
- メディア: 大型本
- この商品を含むブログを見る
2013年5月の本ということもあってiOS6系をターゲットにした書籍ですが、ここで得られる知識はiOS7でも十分に活かされます。

- 作者: 井上誠喜,八木伸行,住吉英樹
- 出版社/メーカー: オーム社
- 発売日: 1994/06
- メディア: 単行本
- この商品を含むブログを見る
Amazonでさえ表紙画像が登録されていないような本です。発行は1994年だそうです。