如何使用alpha蒙版剪辑和填充画布
问题描述:
我有一些.png图标是alpha蒙版。我需要使用Android SDK将它们渲染为可绘制的图像。如何使用alpha蒙版剪辑和填充画布
在iPhone上,我使用以下方法来得到这样的结果,采用了黑色的“图像”阿尔法遮掩转换为“imageMasked”的形象作为填充:
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, thumbWidth,
thumbHeight, 8, 4*thumbWidth, colorSpace, kCGImageAlphaPremultipliedFirst);
CGRect frame = CGRectMake(0,0,thumbWidth,thumbHeight);
CGContextClipToMask(context, frame, [image CGImage]);
CGContextFillRect(context, frame);
CGImageRef imageMasked = CGBitmapContextCreateImage(context);
CGContextRelease(context);
如何实现在上面Android SDK?
我已经开始写:
Drawable image = myPngImage;
final int width = image.getMinimumWidth();
final int height = image.getMinimumHeight();
Bitmap imageMasked = Bitmap.createBitmap(width,
height, Config.ARGB_8888);
Canvas canvas = new Canvas(iconMasked);
image.draw(canvas); ???
我没有找到如何使用图像做剪裁上imageMasked。
答
解决:
Drawable icon = An_Icon_That_Is_An_Alpha_Mask;
int width = icon.getIntrinsicWidth();
int height = icon.getIntrinsicHeight();
Bitmap bm = Bitmap.createBitmap(width, height, Bitmap.Config.ALPHA_8);
Canvas canvas = new Canvas(bm);
icon.setBounds(new Rect(0,0,width,height));
icon.draw(canvas);
我可能没有得到这个问题,但如果你与阿尔法图像视图分配图像 - 阿尔法将在那里。 – 2010-01-09 03:25:09
我在这里要做的是将alpha位图转换为剪切区域并将其用于填充。基本上应用一个alpha蒙版。 任何其他采取答案? – 2010-01-19 21:51:36
我想要做的是沿着这些线: final int width = icon.getMinimumWidth(); final int height = icon.getMinimumHeight(); \t \t \t \t 位图iconMasked = Bitmap.createBitmap(width, height,Config.ARGB_8888); Canvas canvas = new Canvas(iconMasked); final Region region = icon.getTransparentRegion(); canvas.clipRegion(region); canvas.drawARGB(255,0,0,0); 这种方法的问题是我的图标是从getTransparentRegion()返回null。没想到,所以我还在寻找答案。 – 2010-01-19 22:46:21