ImageData:mapPixel (Português)

Transforma uma imagem através da aplicação de uma função em todos os pixels.

Esta função é uma função de alta ordem. Ela recebe outra função como um parâmetro e chama essa função para cada pixel no ImageData.

A função parâmetro é chamada com seis parâmetros para cada pixel. Os parâmetros são números que representam as coordenadas x e y do pixel e os valores dos componentes vermelho, verde, azul e alpha. A função parâmetro pode retornar até quadro valores que são os novos valores das componentes r, g, b e a para o pixel. Se a função retornar menos valores, os demais componentes são configurados para 0.

Função

Sinopse

function pixelFunction(x, y, r, g, b, a)
    -- modelo para definir sua própria função de mapeamento de pixel
    -- ...
    return r, g, b, a
end
 
ImageData:mapPixel( pixelFunction )

Argumentos

function (Português) pixelFunction
Função parâmetro a ser aplicada em todos os pixels.

Retornos

Nada.

Exemplos

Clareando uma imagem

function brighten( x, y, r, g, b, a )
   r = math.min(r * 3, 255)
   g = math.min(g * 3, 255)
   b = math.min(b * 3, 255)
   return r,g,b,a
end
 
imageData:mapPixel( brighten )

Adicionando pontilhado colorido à uma imagem

function stripey( x, y, r, g, b, a )
   r = math.min(r * math.sin(x*100)*2, 255)
   g = math.min(g * math.cos(x*150)*2, 255)
   b = math.min(b * math.sin(x*50)*2, 255)
   return r,g,b,a
end
 
imageData:mapPixel( stripey )

fonte: http://khason.net/blog/hlsl-pixel-shader-effects-tutorial/

Veja Também

Outros Idiomas