2

Bitmap.extractAlpha とは正反対のことを行う必要があります。アルファ マップ (ファイルからロードされたもの) を RGB ビットマップ (これもファイルからロードされたもの) に適用します。

はい!iOSの「CGImageCreateWithMask」と同じ!

4

2 に答える 2

1

Squareブログには、先週これに関するチュートリアルがありました:http: //corner.squareup.com/2013/01/transparent-jpegs.html :)。

于 2013-01-29T07:55:56.877 に答える
1

正確には何をするのかわかりCGImageCreateWithMaskませんが、別の画像を のアルファ チャネルとして使用する場合は、この質問Bitmapで説明されているように、4 つの画像を組み合わせた画像を作成できます。今は試していませんが、2 色の場合は次のようになると思います。

Paint colorPaint = new Paint();
redPaint.setShader(new BitmapShader(redChanImg, TileMode.CLAMP, TileMode.CLAMP));

Paint alphaPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
alphaPaint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));

c.setBitmap(resultImage);
c.drawRect(0, 0, width, height, colorPaint);
c.drawBitmap(alphaImg, 0, 0, alphaPaint);

// save result somewhere

を使用して、ビットマップの生のピクセルデータでいつでも作業することもできますBitmap.getPixels

于 2013-01-29T08:01:57.433 に答える