开发者社区> 问答> 正文

如何使用Alpha蒙版剪切和填充画布

我有一些.alpha蒙版的.png图标。我需要使用Android SDK将它们渲染为可绘制的图像。

在iPhone上,我使用以下命令获取此结果,使用黑色作为填充,将“图像” alpha蒙版转换为“ 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进行剪辑。

展开
收起
Puppet 2020-01-25 11:31:29 451 0
1 条回答
写回答
取消 提交回答
  • 解决了:

    
    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);
    
    2020-01-25 11:31:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载