love.math.linearToGamma (日本語)
Available since LÖVE 0.9.1 |
This function is not supported in earlier versions. |
線形空間 (RGB) からガンマ空間 (sRGB) へ色変換します。これは線形 RGB 色の値を画像へ格納する場合に有用です。理由として暗色に対して線形 RGB 色空間は sRGB より低精度であるため、結果として描画時に気付くほどの色帯域となるからです。
一般に、画面上で見える物に基づいて選択された色が既にガンマ空間に当てはまるならば、倍数変換をしないでください。数学的なものを使用して計算された色において大抵は線形 RGB 空間に当てはまります。
ガンマ補正表示に関する詳細は ここ、 ここ、さらにここ にあります。
ガンマ補正表示は高度な話題であり色空間に関してたやすく混乱してしまいます。これが必要か不明であれば避けたいと思っても構いません。 |
Contents
関数
概要
cr, cg, cb = love.math.linearToGamma( lr, lg, lb )
引数
返値
number cr
- ガンマ sRGB 空間へ変換された色の赤チャンネル。
number cg
- ガンマ sRGB 空間へ変換された色の緑チャンネル。
number cb
- ガンマ sRGB 空間へ変換された色の青チャンネル。
注釈
透過値は第四引数として関数へ渡すことができますが、透過は常に線形であるため無変更で返されます。
関数
概要
cr, cg, cb = love.math.linearToGamma( color )
引数
table color
- 変換したい RGB 色の赤、青、および青チャンネルの配列。
返値
number cr
- ガンマ sRGB 空間へ変換された色の赤チャンネル。
number cg
- ガンマ sRGB 空間へ変換された色の緑チャンネル。
number cb
- ガンマ sRGB 空間へ変換された色の青チャンネル。
関数
概要
c = love.math.linearToGamma( lc )
引数
number lc
- 変換したい線形 RGB 空間における色チャンネルの値。
返値
number c
- ガンマ sRGB 空間における色チャンネルの値。
用例
線形 RGB 空間に当てはまる画像の RGB 値の透過 へ事前に乗算を行います
local function PremultiplyLinearPixel(x, y, r, g, b, a)
r = r * a / 255
g = g * a / 255
b = b * a / 255
return r, g, b, a
end
local function PremultiplyGammaPixel(x, y, r, g, b, a)
r, g, b = love.math.gammaToLinear(r, g, b)
r = r * a / 255
g = g * a / 255
b = b * a / 255
r, g, b = love.math.linearToGamma(r, g, b)
return r, g, b, a
end
-- 画像を読み込んで ('alpha', 'premultiplied') 混合方式を使用するために RGB 値の 透過に事前へ乗算を行います。
-- 画像の色空間に対して乗算にて正確に計算します。
function NewPremultipliedImage(filepath, flags)
local imagedata = love.image.newImageData(filepath)
local mapfunction = (flags and flags.linear) and PremultiplyLinearPixel or PremultiplyGammaPixel
imagedata:mapPixel(mapfunction)
return love.graphics.newImage(imagedata, flags)
end
image = NewPremultipliedImage("pig.png")
関連
そのほかの言語
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info