例えば、Photoshopで不透明度50%のレイヤーは「何枚重ねると100%になる?」が気になって整理してみました。実は以下の様に過去にも整理していましたが、思い出してプログラムに展開できるように整理してみました。
Photoshopで透明度を重ねるときの注意点 2022/11/27
まずサンプルとして左の色(R:255/G:0/B:255)で塗り潰したレイヤーの不透明度を右のように50%にした場合、何枚複製レイヤーを重ねたら元の100%になるか?です。
実は結果は7枚なのですが・・・
右:元の100%の状態。
左:元のレイヤーも含めて7つのレイヤーの不透明度を50%に設定。
これでカラー状態は・・・
右:(R:255/G:0/B:255)
左:(R:255/G:1/B:255)
と、なりました。そこで、このサンプルから別の不透明度(例えば25%など)なら何枚かを計算してみました。
透明度50%ということは、1枚重ねると50%透過することになります。2枚重ねると、50%の50%(25%)が透過し、75%が不透明になります。n枚重ねると、透明度は次のように計算されます。
透明度 = 0.5^n
不透明度 = 1 − 透明度
※透明度と不透明度を混乱しないことが重要
MS-Officeでは透明度
Adobe CCでは不透明度
透明度25%=不透明度(100%−25%=75%)
不透明度25%=透明度(100%−25%=75%)
これが100%不透明になるためには、透明度が0%になる必要があります。よって以下の式が成り立ちます。
1 − 0.5^n = 1
0.5^n = 0
実際には、完全に透明度が0になることは数学的には無限大枚必要となるので、1%(0.01)。不透明度が100%(0.99)になるための枚数を求めるには・・・
1 − 0.5^n >= 0.99
0.5^n <= 0.01
これを解くために対数を使用します。
n × log10(0.5) <= log10(0.01)
n >= log10(0.01) / log10(0.5)
n >= log(0.01) / log(0.5)
または
n >= ln(0.01) / ln(0.5)
この計算をExcelの関数で実行すると・・・
50%を重ねた場合・・・
=log10(0.01)/log10(0.5)
=16
不透明度50%の色を重ねると、100%不透明に近づくためには約6.64385619枚必要になります。
ただし、実際には色の重ねる枚数は整数なので、7枚重ねるとほぼ完全に不透明(99%以上)になります。
■計算まとめ
この計算をExcelの関数で実行すると・・・
50%を重ねた場合・・・
=log10(0.01)/log10(0.5)
=Log(0.01)/log(0.5)
または =ln(0.01)/ln(0.5)
=6.64385619 を四捨五入で整数表記すれば・・・
=6.64385619 を四捨五入で整数表記すれば・・・
=7
25%を重ねた場合・・・
=log10(0.01)/log10(0.75)
25%を重ねた場合・・・
=log10(0.01)/log10(0.75)
=Log(0.01)/log(0.75)
または =ln(0.01)/ln(0.75)
=16.0078456 を四捨五入で整数表記すれば・・・=16
不透明度50%の色を重ねると、100%不透明に近づくためには約6.64385619枚必要になります。
ただし、実際には色の重ねる枚数は整数なので、7枚重ねるとほぼ完全に不透明(99%以上)になります。
■計算まとめ
50%を重ねた場合
6枚重ねると約98.4375%不透明。
7枚重ねると約99.2188%不透明。
したがって、7枚重ねることで実質的に100%不透明にすることができます。
6枚重ねると約98.4375%不透明。
7枚重ねると約99.2188%不透明。
したがって、7枚重ねることで実質的に100%不透明にすることができます。
Excelで確認しても7枚と言うことが解りました。
Visdual Studio 2022のBasicで作成しています。