(クラス)
Pixel の 2d 配列。
説明
Pixmap の
Pixel を参照するには 2 つの方法があります。
- 2d アドレス指定スキームを使用し、(x, y) 座標でピクスマップ内のピクセル原点の位置を指定します。
- 1d アドレス指定スキームを使用し、単一インデックス値を指定します。これが可能なのは、Pixmap の内部には Pixel の 1d 配列があるためです。ピクセルには左から右にインデックスが付けられ、ピクスマップの原点から始まりその右下隅で終わります。メソッド Pixmap.get-offset および Pixmap.set-offset を使用して、1d 配列にアクセスできます。
次の図は、アドレス指定スキームを示しています。
Pixmap クラスは
{Map-of Pixel} であることに注意してください。
注意事項
Pixmap で透過を使用するには、いくつかの点を考慮する必要があります。
Pixmap.ignore-alpha? が
true の場合、アルファ チャネルは重要ではありません。—アルファ チャネルは無視されます。したがって、この値は
false に設定する必要があります。イメージがロードされる場合、イメージに透過が含まれる場合は、この値は
false に設定されます。その他の場合は、通常
true になります。したがって、透過を
Pixmap に手動で追加する場合は、
Pixmap.ignore-alpha? を常に
false に設定することが推奨されます。(このフラグの
false への設定に関連するパフォーマンス コストに常に注意してください。)
最後に、
Renderer2d を使用して
Pixmap をレンダリングする場合、
Renderer2d は意図する結果を得るためには正しい
DrawOperation を使用する必要があります。
Renderer2d の既定の
DrawOperation は、
DrawOperation.mask であり、アルファ値が最大値の半分以上の場合にのみピクセルを描画します。部分的な透過性を得るには、
DrawOperation.blend を使用する必要があります。ただし、一部のレンダラはこの操作をサポートしていません。目的に応じた正しいタイプのレンダラを取得する方法の詳細については、
DrawOperation を参照してください。
| コンストラクタ public | {Pixmap.clone-from source:Pixmap} |
| コンストラクタ public | {Pixmap.default width:int,height:int,ignore-alpha?:bool = false,empty-value:Pixel = {Pixel.from-uint8 0, 0, 0, alpha = 0},initial-value:Pixel = {Pixel.from-uint8 0, 0, 0, alpha = 0} } |
| ファクトリ public | {Pixmap.from-url url:Url}:Pixmap |
フィールド public Pixmap.ignore-alpha?:
bool
アクセサ public final Pixmap.uniform?:
bool
| clone: | Pixmap のクローンを作成します。 |
| public sealed | {Pixmap.clone}:Pixmap |
| distort: | DisplacementMesh を使用して、指定された Pixmap またはそのクローンに Pixmap を歪めます。 |
| public | {Pixmap.distort}:Pixmap |
| public | {Pixmap.new-like-self width:int = self.width,height:int = self.height,empty-value:Pixel = self.empty-value,initial-value:Pixel = empty-value }:Pixmap |
| public final | {Pixmap.to-Pixel }:(pixel:Pixel,
uniform?:bool) |
メソッド 継承 Map-of:
clear, copy-from, embed-clone, flip-horizontal, flip-horizontal-clone, flip-vertical, flip-vertical-clone, get, get-offset, pad-crop-clone, rotate-180-clone, rotate-270-clone, rotate-90-clone, safe-get, safe-set, set, set-offset, shift, shift-clone, transpose-clone
(コンストラクタ)
| public | {Pixmap.clone-from source:Pixmap} |
既存の Pixmap からクローンを作成します。
source: クローン化するオブジェクト。
説明
clone-from および
clone は copy-on-write 構造を実装しています。つまり、マップ データは直ちにコピーされず、代わりに新しい
Pixmap が元の
Pixmap とデータを共有することになります。
ただし、マップの 1 つが変更される場合はデータをコピーする必要があります。マップの 1 つに書き込まれるとマップ データは実際にコピーされ、結果として変更はクローンに影響を与えません。
したがって、
clone および
clone-from は適正に動作します。マップをクローンしてから元のマップに書き込む場合、クローンは変更されません。ただし、copy-on-write クローンの特徴の利点により、かなり効率的に (メモリおよび速度の点で) マップを変更せずにクローンできます。
(コンストラクタ)
| public | {Pixmap.default width:int,height:int,ignore-alpha?:bool = false,empty-value:Pixel = {Pixel.from-uint8 0, 0, 0, alpha = 0},initial-value:Pixel = {Pixel.from-uint8 0, 0, 0, alpha = 0} } |
指定された幅および高さで、ピクスマップを作成します。
width, height: Pixel で示される Pixmap の幅および高さ。少なくとも 1x1 である必要があります。
ignore-alpha?: アルファ チャネルを無視するかどうかを指定します。true の場合、演算の中にはマスクが無視または破壊されるためにより高速に処理されるものがあります。
empty-value: ピクセルの位置に意味のある値がないことを示す値。この値は、パディングされるピクセルや境界外のピクセルに使用される値です。
initial-value: このPixmap のすべてのピクセルの初期値。
例
次のコード行は、アルファ チャネルを使用して透明の黒に初期化された 100x100 ピクセルのピクスマップを作成します。
(ファクトリ)
イメージ ファイルをロードして、それを記述する Pixmap を返します。
説明
イメージに複数のフレームがある場合、最初のフレームが返されます。
url: イメージの
Url。
url プリミティブを呼び出すことにより
Url を作成できます。
例
Pixmap を作成する簡単な例を次に示します。
{let pixmap:Pixmap=
{Pixmap.from-url
{url "your_filename.gif"}
}
}
注意事項
画像をロードできない場合に、例外をスローします。
戻り値
ロードされたイメージ ファイルを記述する Pixmap。
(フィールド)
public Pixmap.ignore-alpha?:
bool 最適化の手段として、アルファ チャネルを無視できるかどうかを指定します。
(アクセサ)
アクセサ public final Pixmap.uniform?:
bool Pixmap が均一の色を持つかどうかを示します。
戻り値
Pixmap が均一な色をもつ場合は true。 それ以外の場合は false。
(メソッド)
| public sealed | {Pixmap.clone}:Pixmap |
Pixmap のクローンを作成します。
戻り値
クローン。
オーバーライド
Pixmap のサブクラスには
clone-from コンストラクタが必要で、これでデータを初期化する前に
super.clone-from を呼び出します。
さらに、
clone メソッドを定義する必要があります。このメソッドは元のオブジェクト (
clone-from コンストラクタを使用) からクローン化した新しいオブジェクトを返します。
説明
clone-from および
clone は copy-on-write 構造を実装しています。つまり、マップ データは直ちにコピーされず、代わりに新しい
Pixmap が元の
Pixmap とデータを共有することになります。
ただし、マップの 1 つが変更される場合はデータをコピーする必要があります。マップの 1 つに書き込まれるとマップ データは実際にコピーされ、結果として変更はクローンに影響を与えません。
したがって、
clone および
clone-from は適正に動作します。マップをクローンしてから元のマップに書き込む場合、クローンは変更されません。ただし、copy-on-write クローンの特徴の利点により、かなり効率的に (メモリおよび速度の点で) マップを変更せずにクローンできます。
(メソッド)
| public | {Pixmap.distort}:Pixmap |
DisplacementMesh を使用して、指定された Pixmap またはそのクローンに Pixmap を歪めます。
out: 歪める
Pixmap。このオブジェクトと同じ型であることが必要です。
out が指定されていない場合、このオブジェクトのクローンを作成して代わりにそれを歪めます。
- out は、self と同じ most-derived 型であることが必要です。
- out はself ではありません。
戻り値
歪められた out オブジェクト。
(メソッド)
| public | {Pixmap.new-like-self width:int = self.width,height:int = self.height,empty-value:Pixel = self.empty-value,initial-value:Pixel = empty-value }:Pixmap |
新しい Pixmap を作成します。
説明
引数を指定しない場合、self と同じ寸法および empty-value を持つ新しいピクスマップが返され、新しいピクスマップのピクセルはすべてこの empty-value を参照します。
width, height: 新しいピクスマップの幅および高さ。
empty-value: パディングされるピクセルおよび境界外のピクセルに代入する値。
initial-value: 新しいピクスマップのすべてのピクセルの初期値。
戻り値
新しいピクスマップ。
(メソッド)
| public final | {Pixmap.to-Pixel }:(pixel:Pixel,
uniform?:bool) |
Pixmap の平均色を表すピクセルを返します。
戻り値
- 値が Pixmap 内のピクセルの平均となる pixel
- Pixmap が均一の色を持つかどうか。
注意事項
このメソッドは時間がかかります。