Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Crop image by polygon area

I want to crop image by polygon area, but couldn`t find any library, which can make it. OpenCV is too big for this small thing. JJIL [enter link description here] crop just rectangle area. Maybe you have any ideas how i can achieve it? Thanks for help!

enter image description hereenter image description here

FOR Nidhi: Try something like this, if doesnot work - create another canvas for path, and than get Bitmap from it (for mask), and apply this mask bitmap to your initial canvas instead 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);
like image 797
ADK Avatar asked Apr 12 '13 10:04

ADK


People also ask

How do I crop a certain part of a picture?

Open the image in Adobe Photoshop. Select the portion of the image you want to crop using the marquee tool. Click Image in the tool bar at the top of the page. From the drop-down menu that appears, select Crop.

How do I crop a JPEG to a specific size?

How do you crop a JPEG picture? Go to the online image cropper and upload your JPEG picture. Pick the size to crop and change the pixels to where you need them. Click "Apply", share, and save it.


1 Answers

Thanks for Eddy_Em, i have achieved this by using PorterDuffXfermode. Good example

like image 108
ADK Avatar answered Oct 03 '22 17:10

ADK