我有一个从相机拍摄照片的应用程序。通常这些照片有矩形或正方形。但是由于这些照片形状呈圆形,我将形状限制为只有方形。所以我现在的问题是制作这个方形图片为圆形,半径为宽度或高度的一半。剪裁的部分应从图片中删除。
就像在广场上制作圆圈一样,它接触正方形的所有面的中点。 我没有使用画布或其他内置绘图功能的经验。
例如,我现在首先是正方形,但是我想让图像变成圆形,这样箭头指向的部分就会从图像上剪下来。
注意:因为我必须处理相机图像。质量是关键因素。所以请建议不会影响像素质量和其他重要因素的可能方法。
答案 0 :(得分:1)
您可以通过使用所需形状屏蔽图像来完成此操作,有关详细信息,请参阅this post。 示例代码:
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);