けさらんぱの自由帳

とあるFF14プレイヤーがFF14のこととか関係ないことを書いていく予定のブログです。記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

画像の乗算、スクリーン、オーバーレイ

SSを撮ったときに、なんか暗いなあと思うと画像をコピーしてスクリーン処理をする、ということがよくあります。ですが、スクリーンとかオーバーレイって何をする処理だっけ?とたまになるので、そのあたりの覚え書きです。

乗算

かけ算です。ただし、画像ファイルのデータの255を1.0とみなします。1.0より小さい値同士のかけ算なので、必ず元の値以下になります。

上の画像の値をo、下の画像の値をb、結果の画像の値をrとすると、
{\displaystyle
r = ob
}
となります。

もしo=b、つまり自分自身に乗算処理をした場合、グラフは以下のようになります。青の実線がオレンジの破線(y=x)より下にあり、暗くなることがわかります。
f:id:KesaranPa:20180214183759j:plain

スクリーン

乗算とは逆の処理です。
{\displaystyle
r = 1 - (1 - o)(1 - b)
}
この処理は、2つの画像を反転して乗算処理をして、その結果をさらに反転する、という処理と等価になります。乗算とは逆に必ず元の値以上になります。

もしo=b、つまり自分自身にスクリーン処理をした場合、グラフは以下のようになります。青の実線がオレンジの破線より上にあり、明るくなることがわかります。
f:id:KesaranPa:20180214183818j:plain

オーバーレイ

乗算とスクリーンを合体させた処理です。下の画像が暗いと乗算、明るいとスクリーンになります。
{\displaystyle
r = \cases{
2ob \cr
1 - 2(1 - o)(1 - b) \cr
}\qquad\array{
b \lt 0.5 \cr
b \ge 0.5 \cr
}
}

もしo=b、つまり自分自身にオーバーレイ処理をした場合、グラフは以下のようになります。暗いところはより暗く、明るいところはより明るくなります。
f:id:KesaranPa:20180214183836j:plain

FF14のSSで試してみる

元の画像。
f:id:KesaranPa:20180214184303j:plain

自身に乗算処理。
f:id:KesaranPa:20180214184318j:plain

自身にスクリーン処理。
f:id:KesaranPa:20180214184335j:plain

自身にオーバーレイ処理。
f:id:KesaranPa:20180214184347j:plain

記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。