Quellcode durchsuchen

相机纠偏完成

詹子聪 vor 5 Jahren
Ursprung
Commit
1c2290c66b

+ 5 - 4
app/src/main/java/com/miekir/ocr/ui/CameraActivity.java

@@ -35,6 +35,7 @@ import android.view.TextureView;
 
 import androidx.annotation.NonNull;
 
+import com.miekir.common.utils.SizeTool;
 import com.miekir.ocr.R;
 import com.miekir.ocr.base.BaseCameraActivity;
 import com.miekir.ocr.tool.CameraPreviewTool;
@@ -450,10 +451,10 @@ public class CameraActivity extends BaseCameraActivity {
                 // 得到裁剪后的图片
                 Bitmap originalBmp = BitmapFactory.decodeByteArray(jpegData , 0, jpegData.length);
                 // 这里由于要快速拍照,使用的格式是ImageFormat.YUV_420_888,导致拍出来的照片自动逆时针90度,所以要转换裁剪位置
-                int newLeft = mTop;
-                int newTop = (originalBmp.getHeight()-mRight);
-                int newWidth = (mBottom-mTop);
-                int newHeight = (mRight-mLeft);
+                int newLeft = mTop*originalBmp.getHeight()/ SizeTool.SCREEN_WIDTH;
+                int newTop = (SizeTool.SCREEN_WIDTH-mRight)*originalBmp.getHeight()/ SizeTool.SCREEN_WIDTH;
+                int newWidth = (mBottom-mTop)*originalBmp.getHeight()/ SizeTool.SCREEN_WIDTH;
+                int newHeight = (mRight-mLeft)*originalBmp.getHeight()/ SizeTool.SCREEN_WIDTH;
                 Bitmap croppedBmp = Bitmap.createBitmap(originalBmp, newLeft, newTop, newWidth, newHeight);
                 // 旋转90度,让OCR可以识别
                 Bitmap rotatedBitmap = ImageUtil.rotateBitmap90(croppedBmp);

+ 8 - 1
app/src/main/java/com/miekir/ocr/ui/OperationActivity.java

@@ -56,6 +56,8 @@ public class OperationActivity extends CameraActivity implements CropView.onLoca
         pcv_scan.setLocationListener(this);
         //showResultDialog(null);
         //showLoading("Loading...");
+
+
     }
 
     @Override
@@ -130,6 +132,11 @@ public class OperationActivity extends CameraActivity implements CropView.onLoca
     public void locationRect(int startX, int startY, int endX, int endY) {
         // 截取的区域坐标信息
         //System.out.println("x:"+startX + "   y:" + startY + "    endX:" + endX + "   endY" + endY);
+        /*mLeft = startY;
+        mTop = SizeTool.SCREEN_WIDTH - endX;
+        mRight = endY;
+        mBottom = SizeTool.SCREEN_WIDTH - startX;*/
+
         mLeft = startX;
         mTop = startY;
         mRight = endX;
@@ -164,7 +171,7 @@ public class OperationActivity extends CameraActivity implements CropView.onLoca
             }
 
             SystemTool.copyText(OperationActivity.this, "");
-            // todo 复制全部识别信息
+            // 复制全部识别信息
             if (mCurrentType == CropView.SCAN_TYPE_ALL) {
                 StringBuilder builder = new StringBuilder();
                 if (result.postcode != null) {