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 です。
Contents
関数
概要
ImageData:mapPixel( pixelFunction )
引数
function pixelFunction
- 全ピクセルへ適用する関数の引数。
返値
ありません。
関数
LÖVE 0.9.0 から使用可能 |
この異形は以前のバージョンでは非対応です。 |
概要
ImageData:mapPixel( pixelFunction, x, y, width, height )
引数
function pixelFunction
- 全ピクセルへ適用する関数の引数。
number x
- 関数を適用する ImageData にある領域の左上角の x 軸。
number y
- 関数を適用する ImageData にある領域の左上角の y 軸。
number width
- 関数を適用する ImageData にある領域の幅。
number height
- 関数を適用する ImageData にある領域の高さ。
返値
ありません。
用例
画像を明るくします:
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 のミラーページ を参照してください)
関連
そのほかの言語
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info