Difference between revisions of "ImageData:mapPixel"
m (included link to other languages) |
|||
Line 49: | Line 49: | ||
[[Category:Functions]] | [[Category:Functions]] | ||
{{#set:Description=Transform an image by applying a function to every pixel.}} | {{#set:Description=Transform an image by applying a function to every pixel.}} | ||
+ | {{#set:Since=000}} | ||
== Other Languages == | == Other Languages == | ||
{{i18n|ImageData:mapPixel}} | {{i18n|ImageData:mapPixel}} |
Revision as of 10:26, 25 March 2011
Transform an image by applying a function to every pixel.
This function is a higher order function. It takes another function as a parameter, and calls it once for each pixel in the ImageData.
The function parameter is called with six parameters for each pixel in turn. The parameters are numbers that represent the x and y coordinates of the pixel and its red, green, blue and alpha values. The function parameter can return up to four number values, which become the new r, g, b and a values of the pixel. If the function returns fewer values, the remaining components are set to 0.
Contents
Function
Synopsis
function pixelFunction(x, y, r, g, b, a)
-- template for defining your own pixel mapping function
-- perform computations giving the new values for r, g, b and a
-- ...
return r, g, b, a
end
ImageData:mapPixel( pixelFunction )
Arguments
function pixelFunction
- Function parameter to apply to every pixel.
Returns
Nothing.
Examples
Brighten an image:
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 )
Add colored stripes to an image:
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 )
source: http://khason.net/blog/hlsl-pixel-shader-effects-tutorial/
See Also
Other Languages
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