android - Select an area on bitmap with 4 points using Matrix.setPolyToPoly -


i playing bitmap on android , facing issue when selecting area on bitmap using 4 points. not sets of 4 points work me. in cases, result blank bitmap instead of cropped bitmap (like in picture) , there not error in logcat(even memory error). here basic code used transformation.

import android.app.activity; import android.graphics.bitmap; import android.graphics.bitmapfactory; import android.graphics.canvas; import android.graphics.matrix; import android.widget.imageview;  public class cropimageactivity extends activity { private imageview mcroppedimageview;  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.crop);     setupviews();     docropping(); }  private void docropping() {     bitmap srcbitmap = bitmapfactory.decoderesource(getresources(), r.drawable.sample);      //target size     int bitmapwidth = 400;     int bitmapheight = 400;      bitmap bitmap = bitmap.createbitmap(bitmapwidth, bitmapheight, bitmap.config.argb_8888);     canvas canvas = new canvas(bitmap);      //this 1 of bad quadangle.     points[0] = 0;    //top-left.x     points[1] = 0;    //top-left.y     points[2] = 230;  //top-right.x     points[3] = 100;  //top-right.y     points[4] = 350;  //bottom-right.x     points[5] = 350;  //bottom-right.y     points[6] = 0;    //bottom-left.x     points[7] = 350;  //bottom-left.y      float[] src = new float[]{             points[0], points[1],             points[2], points[3],             points[4], points[5],             points[6], points[7]     };     float[] dsc = new float[]{             0, 0,             bitmapwidth, 0,             bitmapwidth, bitmapheight,             0, bitmapheight     };      matrix matrix = new matrix();     boolean transformresult = matrix.setpolytopoly(src, 0, dsc, 0, 4);      canvas.drawbitmap(srcbitmap, matrix, null);     mcroppedimageview.setimagebitmap(bitmap); }  private void setupviews() {     mcroppedimageview = (imageview) findviewbyid(r.id.croppedimageview); } } 

so, 4 points coordinates affect canvas drawing or matrix transformation? appreciated.

thank you

enter image description here this works

finally, solve issue using opencv. answer in this question! seems matrix.setpolytopoly not work cases.


Comments

Popular posts from this blog

how to insert data php javascript mysql with multiple array session 2 -

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -