首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android中通过模板将图片组织成任何形状?

问如何在android中通过模板将图片组织成任何形状?
EN

Stack Overflow用户
提问于 2016-06-16 20:38:02
回答 1查看 397关注 0票数 0

我想知道是否有可能将一张图片裁剪成任何其他形状,而不仅仅是方形、矩形或圆形。基本上我正在寻找的是,用户可以选择一个模板的png文件(已经存在),它剪切该形状的图片。

EN

回答 1

Stack Overflow用户

发布于 2016-06-16 21:33:13

看看这段代码:

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final ImageView imageViewPreview = (ImageView) findViewById(R.id.imageview_preview);
    new Thread(new Runnable() {
        @Override
        public void run() {
            final Bitmap source = BitmapFactory.decodeResource(MainActivity.this.getResources(),
                    R.drawable.source);
            final Bitmap mask = BitmapFactory.decodeResource(MainActivity.this.getResources(),
                    R.drawable.mask);
            final Bitmap croppedBitmap = cropBitmap(source, mask);
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    imageViewPreview.setImageBitmap(croppedBitmap);
                }
            });
        }
    }).start();
}

private Bitmap cropBitmap(final Bitmap source, final Bitmap mask){
    final Bitmap croppedBitmap = Bitmap.createBitmap(
            source.getWidth(), source.getHeight(),
            Bitmap.Config.ARGB_8888);
    final Canvas canvas = new Canvas(croppedBitmap);
    canvas.drawBitmap(source, 0, 0, null);
    final Paint maskPaint = new Paint();
    maskPaint.setXfermode(
            new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));
    canvas.drawBitmap(mask, 0, 0, maskPaint);
    return croppedBitmap;
}

}

主要函数是"cropBitmap“函数。基本上,它接收两个位图,一个源和一个掩码,然后它使用掩码的形状“裁剪”源位图。这是我的源位图:

这是遮罩位图:

这就是结果:

​

另外,看看这个很棒的演示文稿,它可能也会对你有所帮助:Fun with Android shaders and filters

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37859494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档