Bladeren bron

压缩图片

詹子聪 5 jaren geleden
bovenliggende
commit
c27acfa29a

+ 10 - 6
app/src/main/java/com/miekir/ocr/ui/CameraActivity.java

@@ -51,8 +51,6 @@ import java.util.List;
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
 
-import static android.os.Environment.DIRECTORY_PICTURES;
-
 public class CameraActivity extends BaseCameraActivity {
     protected int mLeft;
     protected int mTop;
@@ -77,7 +75,7 @@ public class CameraActivity extends BaseCameraActivity {
     private Size imageDimension;
     private ImageReader imageReader;
 
-    private File file = new File(Environment.getExternalStoragePublicDirectory(DIRECTORY_PICTURES) + "/" + System.currentTimeMillis() + ".jpg");
+    private File directoryFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/");
 
     private Handler mBackgroundHandler;
     private HandlerThread mBackgroundThread;
@@ -433,7 +431,7 @@ public class CameraActivity extends BaseCameraActivity {
                 @Override
                 public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, TotalCaptureResult result) {
                     super.onCaptureCompleted(session, request, result);
-                    //Toast.makeText(CameraActivity.this, "Saved:" + file, Toast.LENGTH_SHORT).show();
+                    //Toast.makeText(CameraActivity.this, "Saved:" + directoryFile, Toast.LENGTH_SHORT).show();
                     createCameraPreview();
                 }
 
@@ -517,11 +515,17 @@ public class CameraActivity extends BaseCameraActivity {
                 byte[] jpegData = ImageUtil.imageToByteArray(image);
 
                 // 写入到文件
-                //FileManager.writeFrame(file.getAbsolutePath(), jpegData);
+                //FileManager.writeFrame(directoryFile.getAbsolutePath(), jpegData);
                 image.close();
 
                 // 得到裁剪后的图片数据
                 int[] rectData = new int[]{mLeft, mTop, mRight, mBottom};
+
+                if (!directoryFile.exists()) {
+                    directoryFile.mkdirs();
+                }
+
+                File file = new File(directoryFile, System.currentTimeMillis() + ".jpg");
                 onCropFinish(jpegData, rectData, file);
             }
 
@@ -546,7 +550,7 @@ public class CameraActivity extends BaseCameraActivity {
         private void save(byte[] bytes) throws IOException {
             OutputStream output = null;
             try {
-                output = new FileOutputStream(file);
+                output = new FileOutputStream(directoryFile);
                 output.write(bytes);
             } finally {
                 if (null != output) {

+ 5 - 0
app/src/main/java/com/miekir/ocr/ui/OperationPresenter.java

@@ -3,6 +3,7 @@ package com.miekir.ocr.ui;
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
+import android.media.MediaScannerConnection;
 import android.net.Uri;
 import android.os.Environment;
 import android.text.TextUtils;
@@ -98,6 +99,8 @@ public class OperationPresenter extends BasePresenter<IOperationView> {
                                     .compressToFile(file, "cp_" + file.getName());
 
                             file.delete();
+                            // 通知相册去获取
+                            MediaScannerConnection.scanFile(context, new String[] { compressedFile.getAbsolutePath() }, new String[] { "image/jpeg" }, null);
                             // 保存最终截图成功
                             // 根据URI获取图片的base64字符串
                             photoBase64 = Base64Tool.getBase64FromFilePath(compressedFile.getAbsolutePath());
@@ -269,6 +272,8 @@ public class OperationPresenter extends BasePresenter<IOperationView> {
                             .compressToFile(file, "cp_" + file.getName());
 
                     file.delete();
+                    // 通知相册去获取
+                    MediaScannerConnection.scanFile(context, new String[] { compressedFile.getAbsolutePath() }, new String[] { "image/jpeg" }, null);
                     // 保存最终截图成功
                     // 根据URI获取图片的base64字符串
                     String photoBase64 = Base64Tool.getBase64FromFilePath(compressedFile.getAbsolutePath());

+ 9 - 0
app/src/main/res/values/colors.xml

@@ -10,4 +10,13 @@
     <color name="blue_copy">#33A4E2</color>
     <color name="gray_stroke">#C1C1C1</color>
     <color name="gray_text">#A9ACB3</color>
+
+    <color name="green_standard">#2c9f66</color>
+    <color name="green">#79d979</color>
+    <color name="green_light">#b5e45c</color>
+    <color name="blue">#72b9ff</color>
+    <color name="blue_light">#5cc8f4</color>
+    <color name="yellow">#ffa75c</color>
+    <color name="purple">#b478ec</color>
+
 </resources>