Difference between revisions of "ImageData:setPixel"

(Add sentence about thread safety.)
 
(10 intermediate revisions by 9 users not shown)
Line 1: Line 1:
 +
Sets the color of a pixel at a specific position in the image.
  
Sets the color of a pixel.
+
Valid x and y values start at 0 and go up to image width and height minus 1.
 +
 
 +
In versions prior to [[11.0]], color component values were within the range of 0 to 255 instead of 0 to 1.
 +
 
 +
This function locks the ImageData until it is done, making it safe to use from multiple Threads, albeit without any performance gains.
 
== Function ==
 
== Function ==
 
=== Synopsis ===
 
=== Synopsis ===
Line 9: Line 14:
 
{{param|number|x|The position of the pixel on the x-axis.}}
 
{{param|number|x|The position of the pixel on the x-axis.}}
 
{{param|number|y|The position of the pixel on the y-axis.}}
 
{{param|number|y|The position of the pixel on the y-axis.}}
{{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).}}
 
=== Returns ===
 
=== Returns ===
 
Nothing.
 
Nothing.
 +
== Examples ==
 +
Create a 32x1 pixel transparent-to-white gradient [[Image|drawable image]].
 +
<source lang="lua">
 +
data = love.image.newImageData(32,1)
 +
for i=0, 31 do  -- remember: start at 0
 +
  data:setPixel(i, 0, 1, 1, 1, i / 31)
 +
end
 +
img = love.graphics.newImage(data)
 +
</source>
 
== See Also ==
 
== See Also ==
 
* [[parent::ImageData]]
 
* [[parent::ImageData]]
 +
* [[ImageData:getPixel]]
 +
* [[ImageData:mapPixel]]
 
[[Category:Functions]]
 
[[Category:Functions]]
 
{{#set:Description=Sets the color of a pixel.}}
 
{{#set:Description=Sets the color of a pixel.}}
 +
{{#set:Since=000}}
 +
== Other Languages ==
 +
{{i18n|ImageData:setPixel}}

Latest revision as of 16:23, 25 November 2023

Sets 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.

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

This function locks the ImageData until it is done, making it safe to use from multiple Threads, albeit without any performance gains.

Function

Synopsis

ImageData:setPixel( x, y, r, g, b, a )

Arguments

number x
The position of the pixel on the x-axis.
number y
The position of the pixel on the y-axis.
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).

Returns

Nothing.

Examples

Create a 32x1 pixel transparent-to-white gradient drawable image.

data = love.image.newImageData(32,1)
for i=0, 31 do   -- remember: start at 0
   data:setPixel(i, 0, 1, 1, 1, i / 31)
end
img = love.graphics.newImage(data)

See Also


Other Languages