OpenXMLスキームの色変換を適用 <a:gamma> や <a:invgamma>
質問
加工した場合、open xmlドキュメントの色が様々な変換を適用ベースカラーを生成する相対色です。のためのインスタンス <a:satMod value="25000">
改正、色の飽和による25%程度となっている。がに変換していを見つけることができ非常に少ない情報とい
<a:gamma>
のドキュメント"ということをこの要素を指定する出力のカラーによって描画される発生の申請をsRGBガンマシフトの入力カラーです。"
や
<a:invGamma>
のドキュメント"ということをこの要素を指定する出力のカラーによって描画される発生の申請を逆sRGBガンマシフトの入力カラーです。"
いう計算しているコーヒーカップ&ソーサーへの変換ではこれらの小さなものに過ぎません。ではもっこす。
解決
そうですね。簡単に言うと、
<a:gamma>
このsRGB値(前半0-1)は、リニアライズで変換する線形RGB).れつつも、リニアRGB値を保存しておくために使いsRGB(変換します0-255範囲がします。<a:invGamma>
は反対側の線形RGB値(前半0-1)およびdelinearizeで変換しsRGB).だと考えておりdelinearized RGB値を保存しておくために使いsRGB(変換します0-255範囲がします。
では、リニアRGB?この計算には ここではWikipediaのsRGBページ.
こちらもVBAバージョン:
Public Function sRGB_to_linearRGB(value As Double)
If value < 0# Then
sRGB_to_linearRGB = 0#
Exit Function
End If
If value <= 0.04045 Then
sRGB_to_linearRGB = value / 12.92
Exit Function
End If
If value <= 1# Then
sRGB_to_linearRGB = ((value + 0.055) / 1.055) ^ 2.4
Exit Function
End If
sRGB_to_linearRGB = 1#
End Function
Public Function linearRGB_to_sRGB(value As Double)
If value < 0# Then
linearRGB_to_sRGB = 0#
Exit Function
End If
If value <= 0.0031308 Then
linearRGB_to_sRGB = value * 12.92
Exit Function
End If
If value < 1# Then
linearRGB_to_sRGB = 1.055 * (value ^ (1# / 2.4)) - 0.055
Exit Function
End If
linearRGB_to_sRGB = 1#
End Function
の value
お渡しは、R、G、B成分を表す0-1の範囲は、sRGBはリニアRGB.みなと同じ範囲を、後半0-1、お客様の必要に応じて、すでに変換す0-255範囲の構築のためにカラーです。
所属していません StackOverflow