主にプログラミングに関する記事を掲載。 まあ開発メモです。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
MIDPで半透明塗りつぶし
drawRGBで実装できた
↓こんなの。
エラー処理は高速化のためしない
(関数の呼び出し元で先にエラーチェックしてから呼ぶ)
/**
* 【関数】矩形塗りつぶし(半透明)
* @param nX X座標
* @param nY Y座標
* @param nW 横幅
* @param nH 高さ
* @param nAlpha 透明度・・・256:完全不透明、0:完全透明
*/
public void fillRect(
Graphics g,
int nX, int nY, int nW, int nH,
int nAlpha)
{
// 色取得
int nCol = this.m_g.getColor();
// ピクセル数
int nPixLen = nW * nH;
// 描画用ピクセルの変数生成
int[] nPixcels = new int[nPixLen];
// RGBデータのオフセットインデックス
int nOffset = 0;
// アルファ値を入れたピクセル値を算出する
int nPixVal
= (((nAlpha<<24) & 0xff000000)
| (nCol & 0x00ffffff));
// ピクセル数だけループ
for(int nC=0;nC<nPixLen;nC++)
{
// ピクセル値セット
nPixcels[nC] = nPixVal;
}
// 描画(最後の引数がtrueで半透明になる)
g.drawRGB(
nPixcels, nOffset, nW,
nX, nY, nW, nH,
true);
}