ImageData:mapPixel (日本語)
全ピクセルへ関数を適用して画像を変形します。
この関数は高階関数です。別の関数を引数として扱い、ImageData にある各ピクセルに対して一括で呼び出します。
渡されたは関数へ各ピクセルの順番により 6 つの引数から呼ばれます。引数はピクセルの x と y 座標および赤、緑、青、および透過の値を数値として表記したものです。関数はピクセルに対して赤、緑、青、および透過の値を返します。
function pixelFunction(x, y, r, g, b, a)
-- ピクセル・マッピング関数を定義するための雛形です。
-- ここで r, g, b および a へ新しい値を与えるための演算を行います
-- ...
return r, g, b, a
end
バージョン 11.0 以前まで、配色成分における値の範囲は小数値の 0 〜 1 ではなく整数値の 0 〜 255 です。
関数
概要
ImageData:mapPixel( pixelFunction, x, y, width, height )
引数
function pixelFunction
- 全ピクセルへ適用する関数の引数。
LÖVE 0.9.0 から利用可能
返値
ありません。
用例
画像を明るくします:
function brighten( x, y, r, g, b, a )
r = math.min(r * 3, 1)
g = math.min(g * 3, 1)
b = math.min(b * 3, 1)
return r,g,b,a
end
imageData:mapPixel( brighten )
画像へ色付きの縞模様を追加します:
function stripey( x, y, r, g, b, a )
r = math.min(r * math.sin(x*100)*2, 1)
g = math.min(g * math.cos(x*150)*2, 1)
b = math.min(b * math.sin(x*50)*2, 1)
return r,g,b,a
end
imageData:mapPixel( stripey )
出典: http://khason.net/blog/hlsl-pixel-shader-effects-tutorial/ (リンク切れを 11月16日に確認。代わりに Microsoft (イスラエル) または Internet Archive のミラーページ を参照してください)
関連