我需要做一些与 Bitmap.extractAlpha 完全相反的事情:将 alpha 贴图(从文件加载)应用到 RGB 位图(也从文件加载)。
是的!就像 iOS 中的“CGImageCreateWithMask”一样!
Square 博客上周有一个关于此的教程:http: //corner.squareup.com/2013/01/transparent-jpegs.html :)。
我不知道究竟是做什么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