我有一个从相机拍照的应用程序。通常这些图片有矩形或方形。但由于这些图片是圆形的,我将形状限制为只有正方形。所以现在我的问题是将这张方形图片变成一个圆形,半径为宽度或高度的一半。剪下的部分应从图片中删除。
就像从正方形中画一个圆一样,它触及正方形所有面的中点。我对画布或其他内置绘图功能没有任何经验。
例如,我一开始有正方形,现在我想让图像变成圆形,这样箭头所指的部分应该从图像中剪掉。
注意:因为我必须使用相机图像。质量是关键因素。所以请提出不会影响像素质量和其他重要因素的可能方法。
我有一个从相机拍照的应用程序。通常这些图片有矩形或方形。但由于这些图片是圆形的,我将形状限制为只有正方形。所以现在我的问题是将这张方形图片变成一个圆形,半径为宽度或高度的一半。剪下的部分应从图片中删除。
就像从正方形中画一个圆一样,它触及正方形所有面的中点。我对画布或其他内置绘图功能没有任何经验。
例如,我一开始有正方形,现在我想让图像变成圆形,这样箭头所指的部分应该从图像中剪掉。
注意:因为我必须使用相机图像。质量是关键因素。所以请提出不会影响像素质量和其他重要因素的可能方法。
您可以通过使用您想要的形状遮盖图像来做到这一点,有关详细信息,请参阅此帖子。示例代码:
Resources resources = context.getResources();
Bitmap original = BitmapFactory.decodeResource(resources,R.drawable.original);
Bitmap mask = BitmapFactory.decodeResource(resources,R.drawable.mask);
Bitmap result = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(), Config.ARGB_8888);
Canvas c = new Canvas(result);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
c.drawBitmap(original, 0, 0, null);
c.drawBitmap(mask, 0, 0, paint);
paint.setXfermode(null);
imageView.setImageBitmap(result);