Bitmap.extractAlpha とは正反対のことを行う必要があります。アルファ マップ (ファイルからロードされたもの) を RGB ビットマップ (これもファイルからロードされたもの) に適用します。
はい!iOSの「CGImageCreateWithMask」と同じ!
Squareブログには、先週これに関するチュートリアルがありました:http: //corner.squareup.com/2013/01/transparent-jpegs.html :)。
正確には何をするのかわかり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