android - 按多边形区域裁剪图像

标签 android image image-processing crop

我想按多边形区域裁剪图像,但找不到任何可以实现的库。 OpenCV 对于这个小东西来说太大了。精机[enter link description here ] 只裁剪矩形区域。 也许您对我如何实现它有任何想法?感谢您的帮助!

enter image description here enter image description here

对于尼迪: 尝试这样的方法,如果不起作用 - 为路径创建另一个 Canvas ,然后从中获取位图(用于蒙版),然后将此蒙版位图应用于您的初始 Canvas 而不是 drawPath。

Bitmap obmp = BitmapFactory.decodeResource(getResources(), R.drawable.image1);
Bitmap resultImg = Bitmap.createBitmap(obmp.getWidth(), obmp.getHeight(), Bitmap.Config.ARGB_8888);
Bitmap maskImg = Bitmap.createBitmap(obmp.getWidth(), obmp.getHeight(), Bitmap.Config.ARGB_8888);

Canvas mCanvas = new Canvas(resultImg);
Canvas maskCanvas = new Canvas(maskImg);

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setAntiAlias(true);
paint.setStyle(Paint.Style.FILL);;
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));

Path path = new Path();
path.moveTo(view.mx,view.my);
path.lineTo(view.x1,view.y1);
path.lineTo(view.x2,view.y2 );
path.lineTo(view.x3,view.y3);
path.lineTo(view.x4,view.y4);
path.close();

maskCanvas.drawPath(path, paint);   
mCanvas.drawBitmap(obmp, 0, 0, null);
mCanvas.drawBitmap(maskImg, 0, 0, paint);

最佳答案

感谢 Eddy_Em,我通过使用 PorterDuffXfermode 实现了这一点。 Good example

关于android - 按多边形区域裁剪图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15969028/

相关文章:

python - 如何使用opencv丢弃图像的边缘?

java - Android 中乐谱图像的线检测

android - Intent extras 没有更新

Java元数据读写

android MediaPlayer 不播放 mp3 文件

javascript - 使用按钮刷新任意图像

javascript - 上传的 Canvas 图像比其主要来源大得多

jquery - 如何根据分辨率调整图像大小?

java - 避免在 Android 上使用 try/catch

java - Android:在适配器上打开对话框