2

我需要做一些与 Bitmap.extractAlpha 完全相反的事情:将 alpha 贴图(从文件加载)应用到 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的,但是如果您想要另一张图片作为您的 Alpha 通道,您可以按照此问题Bitmap中的描述创建一个,它结合了四个图像。我现在还没有尝试过,但我认为对于两种颜色,它看起来像这样:

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 回答