Parcourir la source

更换压缩类库

詹子聪 il y a 5 ans
Parent
commit
c6ac9b8e24

+ 4 - 3
app/build.gradle

@@ -7,8 +7,8 @@ android {
         applicationId "com.miekir.ocr"
         minSdkVersion versions.minSdk
         targetSdkVersion versions.targetSdk
-        versionCode 11
-        versionName "1.0.11"
+        versionCode 12
+        versionName "1.0.12"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
     }
 
@@ -78,7 +78,8 @@ dependencies {
     //implementation 'com.github.VictorAlbertos:RxActivityResult:0.5.0-2.x'
 
     // 图片压缩
-    implementation 'id.zelory:compressor:2.1.0'
+    //implementation 'id.zelory:compressor:2.1.0'
+    implementation 'top.zibin:Luban:1.1.8'
 
     // crash捕获
     implementation 'cn.yc:ToolLib:1.2.0'

+ 25 - 11
app/src/main/java/com/miekir/ocr/ui/OperationPresenter.java

@@ -23,14 +23,15 @@ import com.miekir.ocr.tool.ImageUtil;
 import java.io.File;
 import java.math.BigDecimal;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
-import id.zelory.compressor.Compressor;
 import io.reactivex.Observable;
 import io.reactivex.ObservableEmitter;
 import io.reactivex.ObservableOnSubscribe;
 import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.schedulers.Schedulers;
+import top.zibin.luban.Luban;
 
 import static android.os.Environment.DIRECTORY_PICTURES;
 
@@ -93,10 +94,12 @@ public class OperationPresenter extends BasePresenter<IOperationView> {
 
                         rotatedBitmap.recycle();
                         if (saveCropSuccess) {
-                            File compressedFile = new Compressor(context.getApplicationContext())
-                                    .setQuality(99)
-                                    .setDestinationDirectoryPath(file.getParentFile().getAbsolutePath())
-                                    .compressToFile(file, "cp_" + file.getName());
+                            List<File> fileList = Luban.with(context)
+                                    .load(file)
+                                    .ignoreBy(400)
+                                    .setTargetDir(file.getParentFile().getAbsolutePath())
+                                    .get();
+                            File compressedFile = fileList.get(0);
 
                             //file.delete();
                             // 通知相册去获取
@@ -266,10 +269,13 @@ public class OperationPresenter extends BasePresenter<IOperationView> {
                 croppedBmp.recycle();
                 rotatedBitmap.recycle();
                 if (saveCropSuccess) {
-                    File compressedFile = new Compressor(context.getApplicationContext())
-                            .setQuality(90)
-                            .setDestinationDirectoryPath(file.getParentFile().getAbsolutePath())
-                            .compressToFile(file, "cp_" + file.getName());
+
+                    List<File> fileList = Luban.with(context)
+                            .load(file)
+                            .ignoreBy(400)
+                            .setTargetDir(file.getParentFile().getAbsolutePath())
+                            .get();
+                    File compressedFile = fileList.get(0);
 
                     file.delete();
                     // 通知相册去获取
@@ -446,14 +452,22 @@ public class OperationPresenter extends BasePresenter<IOperationView> {
                 croppedBmp.recycle();
                 rotatedBitmap.recycle();
                 if (saveCropSuccess) {
-                    File compressedFile = new Compressor(context.getApplicationContext())
+                    /*File compressedFile = new Compressor(context.getApplicationContext())
                             .setQuality(97)
                             .setDestinationDirectoryPath(file.getParentFile().getAbsolutePath())
-                            .compressToFile(file, "cp_" + file.getName());
+                            .compressToFile(file, "cp_" + file.getName());*/
+
+                    List<File> fileList = Luban.with(context)
+                            .load(file)
+                            .ignoreBy(400)
+                            .setTargetDir(file.getParentFile().getAbsolutePath())
+                            .get();
+                    File compressedFile = fileList.get(0);
 
                     file.delete();
                     // 通知相册去获取
                     MediaScannerConnection.scanFile(context, new String[] { compressedFile.getAbsolutePath() }, new String[] { "image/jpeg" }, null);
+                    //MediaScannerConnection.scanFile(context, new String[] { file.getAbsolutePath() }, new String[] { "image/jpeg" }, null);
                     // 保存最终截图成功
                     // 根据URI获取图片的base64字符串
                     String photoBase64 = Base64Tool.getBase64FromFilePath(compressedFile.getAbsolutePath());

+ 7 - 7
camera/src/main/java/com/cjt2325/cameralibrary/CameraInterface.java

@@ -40,8 +40,6 @@ import java.util.List;
 
 import static android.graphics.Bitmap.createBitmap;
 import static android.hardware.Camera.Parameters.ANTIBANDING_AUTO;
-import static android.hardware.Camera.Parameters.SCENE_MODE_AUTO;
-import static android.hardware.Camera.Parameters.WHITE_BALANCE_AUTO;
 
 /**
  * =====================================
@@ -395,13 +393,15 @@ public class CameraInterface implements Camera.PreviewCallback {
                     mParams.setJpegQuality(100);
                 }
 
-
-                mParams.setExposureCompensation(0);
+                // 曝光
+                int minExpo = mParams.getMinExposureCompensation();
+                if (minExpo < -1) {
+                    mParams.setExposureCompensation(-1);
+                }
                 //mParams.setColorEffect(EFFECT_POSTERIZE);
-                //mParams.setColorEffect(EFFECT_SEPIA);
                 mParams.setAntibanding(ANTIBANDING_AUTO);
-                mParams.setWhiteBalance(WHITE_BALANCE_AUTO);
-                mParams.setSceneMode(SCENE_MODE_AUTO);
+                //mParams.setWhiteBalance(WHITE_BALANCE_AUTO);
+                //mParams.setSceneMode(SCENE_MODE_AUTO);
 
 
                 mCamera.setParameters(mParams);