Difference between revisions of "ImageData:getPixel (日本語)"

(Created page with "画像において指定された座標にあるピクセルの色を取得します。 有効な x および y の値は 0 を始点として画像の幅および高さの -...")
 
m
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 
画像において指定された座標にあるピクセルの色を取得します。
 
画像において指定された座標にあるピクセルの色を取得します。
  
有効な x および y の値は 0 を始点として画像の幅および高さの -1 以下までです。
+
有効な x および y の値は 0 を始点として画像の幅および高さの -1 以下までです。非整数値は切り捨てられます。
 +
 
 +
バージョン [[11.0 (日本語)|11.0]] 以前まで、配色成分における値の範囲は小数値の 0 〜 1 ではなく整数値の 0 〜 255 です。
 +
{{notice|[[0.10.2 (日本語)|0.10.2]] 以前において、この関数では非整数座標を扱えないため、非整数値が渡された場合は無効な結果を生成します。}}
 
== 関数 ==
 
== 関数 ==
 
=== 概要 ===
 
=== 概要 ===
Line 11: Line 14:
 
{{param|number|y|Y 軸上のピクセル位置。}}
 
{{param|number|y|Y 軸上のピクセル位置。}}
 
=== 返値 ===
 
=== 返値 ===
{{param|number|r|赤色の成分 (0-255)}}
+
{{param|number|r|赤色の成分 (0-1)}}
{{param|number|g|緑色の成分 (0-255)}}
+
{{param|number|g|緑色の成分 (0-1)}}
{{param|number|b|青色の成分 (0-255)}}
+
{{param|number|b|青色の成分 (0-1)}}
{{param|number|a|透過の成分 (0-255)}}
+
{{param|number|a|透過の成分 (0-1)}}
 +
 
 
== 用例 ==
 
== 用例 ==
画像にあるピクセルに対して反復を行い [[sequence (日本語)|sequence]] へ記憶します。
+
マウスでクリックすると、マウスカーソルの下にあるピクセルの赤、青、緑の値を読み取ったものを背景色として使用します。
 
<source lang="lua">
 
<source lang="lua">
local image = love.image.newImageData( 'path/to/Image.png' )
+
local imagedata = love.image.newImageData('path/to/Image.png')
local pixels = {}
+
local image    = love.graphics.newImage(imagedata)
for x = 1, image:getWidth() do
+
 
     for y = 1, image:getHeight() do
+
function love.mousepressed(mx, my)
        -- ピクセルの座標範囲は 0 から画像の 幅 - 1 / 高さ - 1 までです。
+
    if  0 <= mx and mx < image:getWidth()
         local pixel = image:getPixel( x - 1, y - 1 )
+
     and 0 <= my and my < image:getHeight() then
         pixels[#pixels + 1] = pixel
+
         local r, g, b = imagedata:getPixel(mx, my)
 +
         love.graphics.setBackgroundColor(r, g, b)
 
     end
 
     end
 
end
 
end
return pixels
+
 
 +
function love.draw()
 +
    love.graphics.draw(image, 0, 0)
 +
end
 
</source>
 
</source>
 
== 関連 ==
 
== 関連 ==

Latest revision as of 16:06, 30 June 2019

画像において指定された座標にあるピクセルの色を取得します。

有効な x および y の値は 0 を始点として画像の幅および高さの -1 以下までです。非整数値は切り捨てられます。

バージョン 11.0 以前まで、配色成分における値の範囲は小数値の 0 〜 1 ではなく整数値の 0 〜 255 です。

O.png 0.10.2 以前において、この関数では非整数座標を扱えないため、非整数値が渡された場合は無効な結果を生成します。  


関数

概要

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

引数

number x
X 軸上のピクセル位置。
number y
Y 軸上のピクセル位置。

返値

number r
赤色の成分 (0-1)
number g
緑色の成分 (0-1)
number b
青色の成分 (0-1)
number a
透過の成分 (0-1)

用例

マウスでクリックすると、マウスカーソルの下にあるピクセルの赤、青、緑の値を読み取ったものを背景色として使用します。

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

関連


そのほかの言語