Difference between revisions of "ImageData:getPixel"

(Noting the ImageData pixel range)
m (Changed the example.)
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Gets the pixel at the specified position.
+
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.
 +
 
 +
In versions prior to [[11.0]], color component values were within the range of 0 to 255 instead of 0 to 1.
 +
{{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 11: Line 14:
 
{{param|number|y|The position of the pixel on the y-axis.}}
 
{{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-1).}}
{{param|number|g|The green component (0-255).}}
+
{{param|number|g|The green component (0-1).}}
{{param|number|b|The blue component (0-255).}}
+
{{param|number|b|The blue component (0-1).}}
{{param|number|a|The alpha component (0-255).}}
+
{{param|number|a|The alpha component (0-1).}}
 +
 
 +
== Examples ==
 +
When the mouse is clicked, reads the red, green, and blue value of the pixel under the mouse and uses it as the background color.
 +
<source lang="lua">
 +
local imagedata = love.image.newImageData('path/to/Image.png')
 +
local image    = love.graphics.newImage(imagedata)
 +
 
 +
function love.mousepressed(mx, my)
 +
    if  0 <= mx and mx < image:getWidth()
 +
    and 0 <= my and my < image:getHeight() then
 +
        local r, g, b = imagedata:getPixel(mx, my)
 +
        love.graphics.setBackgroundColor(r, g, b)
 +
    end
 +
end
 +
 
 +
function love.draw()
 +
    love.graphics.draw(image, 0, 0)
 +
end
 +
</source>
 +
 
 
== See Also ==
 
== See Also ==
 
* [[parent::ImageData]]
 
* [[parent::ImageData]]
 +
* [[ImageData:setPixel]]
 
[[Category:Functions]]
 
[[Category:Functions]]
{{#set:Description=Gets the pixel at the specified position.}}
+
{{#set:Description=Gets the color of a pixel.}}
 
{{#set:Since=000}}
 
{{#set:Since=000}}
 
== Other Languages ==
 
== Other Languages ==
 
{{i18n|ImageData:getPixel}}
 
{{i18n|ImageData:getPixel}}

Latest revision as of 09:25, 14 January 2019

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.

In versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.

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-1).
number g
The green component (0-1).
number b
The blue component (0-1).
number a
The alpha component (0-1).

Examples

When the mouse is clicked, reads the red, green, and blue value of the pixel under the mouse and uses it as the background color.

local imagedata = love.image.newImageData('path/to/Image.png')
local image     = love.graphics.newImage(imagedata)

function love.mousepressed(mx, my)
    if  0 <= mx and mx < image:getWidth()
    and 0 <= my and my < image:getHeight() then
        local r, g, b = imagedata:getPixel(mx, my)
        love.graphics.setBackgroundColor(r, g, b)
    end
end

function love.draw()
    love.graphics.draw(image, 0, 0)
end

See Also


Other Languages