love.math.linearToGamma (Français)
Disponible depuis LÖVE 0.9.1 |
Ce-tte function n'est pas supporté-e par des versions plus anciennes. |
Convertit une couleur, de l'espace linéaire (RVB) vers l'espace gamma (sRVB). C'est utilisa lorsque des valeurs de couleurs linéaires RVB sont stockées dans une image, car l'espace de couleur linéaire RVB a moins de précision pour les couleurs sombres que sRVB, ce qui peut engendrer des bandes de couleurs lors de tracés.
En général, les couleurs choisies en fonction de leur apparence à l'écran sont déjà dans l'espace gamma et ne devraient pas être converties deux fois. Les couleurs calculées en utilisant les mathématiques sont souvent dans une espace linéaire RVB.
Vous pouvez en lire d'avantage à propos du rendu avec correction gamma ici, ici, et ici (tout en anglais).
Dans les versions antérieures à la 11.0, les valeurs de composantes couleur étaient situées dans l'étendue 0 à 255 au lieu de 0 à 1.
Contents
Fonction
Synopsis
cr, cg, cb = love.math.linearToGamma( lr, lg, lb )
Arguments
number (Français) lr
- Canal rouge de la couleur linéaire RVB à convertir.
number (Français) lg
- Canal vert de la couleur linéaire RVB à convertir.
number (Français) lb
- Canal bleu de la couleur linéaire RVB à convertir.
Retourne
number (Français) cr
- Canal rouge de la couleur converti dans l'espace sRVB gamma.
number (Français) cg
- Canal vert de la couleur converti dans l'espace sRVB gamma.
number (Français) cb
- Canal bleu de la couleur converti dans l'espace sRVB gamma.
Notes
Une valeur alpha peut être passée à la fonction comme quatrième argument, mais elle sera retournée inchangée puisque le canal alpha est toujours linéaire.
Fonction
Synopsis
cr, cg, cb = love.math.linearToGamma( color )
Arguments
table (Français) color
- Table comportant les canaux rouge, vert et bleu de la couleur linéaire RVB à convertir.
Retourne
number (Français) cr
- Canal rouge de la couleur converti dans l'espace sRVB gamma.
number (Français) cg
- Canal vert de la couleur converti dans l'espace sRVB gamma.
number (Français) cb
- Canal bleu de la couleur converti dans l'espace sRVB gamma.
Fonction
Synopsis
c = love.math.linearToGamma( lc )
Arguments
number (Français) lc
- Valeur d'un canal de couleur dans l'espace linéaire RVB à convertir.
Retourne
number (Français) c
- Valeur du canal de couleur dans l'espace sRVB gamma.
Exemples
Pré-multiplie l'alpha d'une image avec ses valeurs RVB dans l'espace linéaire RVB
local function PremultiplyLinearPixel(x, y, r, g, b, a)
r = r * a
g = g * a
b = b * a
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
g = g * a
b = b * a
r, g, b = love.math.linearToGamma(r, g, b)
return r, g, b, a
end
-- Charge une image et pré-multiplie ses valeurs RVB avec son canal alpha, pour l'utilisation avec le mode de mixage ('alpha', 'premultiplied').
-- La multiplication compte correctement pour l'espace de couleur de l'image.
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")
Voir également
Autres langues
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