Difference between revisions of "ImageData:getPixel"

(Function: Added notice to input parameters not being interpolated, to thwart any assumptions.)
(Have API docs describe what the API does (instead of what it doesn't do, or what the author thinks the user ought to do).)
Line 1: Line 1:
 
Gets the color of a pixel at a specific position in the image.
 
Gets the color of a pixel at a specific position in the image.
  
Valid x and y values start at 0 and go up to image width and height minus 1.
+
Valid x and y values start at 0 and go up to image width and height minus 1. Non-integer values are floored.
 +
{{notice|Prior to [[0.10.2]], this function does not properly handle non-integer coordinates, and may produce an invalid result when non-integer values are passed.}}
 
== Function ==
 
== Function ==
 
=== Synopsis ===
 
=== Synopsis ===
Line 8: Line 9:
 
</source>
 
</source>
 
=== Arguments ===
 
=== Arguments ===
{{param|number|x|The position of the pixel on the x-axis. Values are not interpolated, so use whole numbers only.}}
+
{{param|number|x|The position of the pixel on the x-axis.}}
{{param|number|y|The position of the pixel on the y-axis. Values are not interpolated, so use whole numbers only.}}
+
{{param|number|y|The position of the pixel on the y-axis.}}
 
=== Returns ===
 
=== Returns ===
 
{{param|number|r|The red component (0-255).}}
 
{{param|number|r|The red component (0-255).}}

Revision as of 18:35, 18 January 2017

Gets the color of a pixel at a specific position in the image.

Valid x and y values start at 0 and go up to image width and height minus 1. Non-integer values are floored.

O.png Prior to 0.10.2, this function does not properly handle non-integer coordinates, and may produce an invalid result when non-integer values are passed.  


Function

Synopsis

r, g, b, a = ImageData:getPixel( x, y )

Arguments

number x
The position of the pixel on the x-axis.
number y
The position of the pixel on the y-axis.

Returns

number r
The red component (0-255).
number g
The green component (0-255).
number b
The blue component (0-255).
number a
The alpha component (0-255).

Examples

Iterates over the pixels of an image and stores them in a sequence.

local image = love.image.newImageData( 'path/to/Image.png' )
local pixels = {}
for x = 1, image:getWidth() do
    for y = 1, image:getHeight() do
        -- Pixel coordinates range from 0 to image width - 1 / height - 1.
        local pixel = image:getPixel( x - 1, y - 1 )
        pixels[#pixels + 1] = pixel
    end
end
return pixels

See Also


Other Languages