|
|
@@ -26,6 +26,7 @@ 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;
|
|
|
@@ -80,11 +81,11 @@ public class OperationPresenter extends BasePresenter<IOperationView> {
|
|
|
|
|
|
int max = rotatedBitmap.getWidth() > rotatedBitmap.getHeight() ? rotatedBitmap.getWidth() : rotatedBitmap.getHeight();
|
|
|
float multi = 1.0f;
|
|
|
- if (max > 2000) {
|
|
|
- multi = 1.0f * max / 2000 + 0.4f;
|
|
|
- }
|
|
|
+// if (max > 2000) {
|
|
|
+// multi = 1.0f * max / 2000 + 0.4f;
|
|
|
+// }
|
|
|
|
|
|
- if (multi > 1) {
|
|
|
+ if (multi >= 1) {
|
|
|
File file = new File(Environment.getExternalStoragePublicDirectory(DIRECTORY_PICTURES) + "/" + System.currentTimeMillis() + ".jpg");
|
|
|
if (!file.getParentFile().exists()) {
|
|
|
file.getParentFile().mkdirs();
|
|
|
@@ -95,25 +96,38 @@ public class OperationPresenter extends BasePresenter<IOperationView> {
|
|
|
|
|
|
rotatedBitmap.recycle();
|
|
|
if (saveCropSuccess) {
|
|
|
- List<File> fileList = Luban.with(context)
|
|
|
- .load(file)
|
|
|
- .ignoreBy(400)
|
|
|
- .setTargetDir(file.getParentFile().getAbsolutePath())
|
|
|
- .get();
|
|
|
- File compressedFile = fileList.get(0);
|
|
|
+// List<File> fileList = Luban.with(context)
|
|
|
+// .load(file)
|
|
|
+// .ignoreBy(400)
|
|
|
+// .setTargetDir(file.getParentFile().getAbsolutePath())
|
|
|
+// .get();
|
|
|
+// File compressedFile = fileList.get(0);
|
|
|
+
|
|
|
+ File compressedFile = file;
|
|
|
+ if (file.length() > 400 * 1024) {
|
|
|
+ compressedFile = new Compressor(context.getApplicationContext())
|
|
|
+ .setQuality(90)
|
|
|
+ .setDestinationDirectoryPath(file.getParentFile().getAbsolutePath())
|
|
|
+ .compressToFile(file, "cp_" + file.getName());
|
|
|
+ }
|
|
|
|
|
|
- //从相册选择图片上传的话,不要删除原图
|
|
|
- //file.delete();
|
|
|
// 通知相册去获取
|
|
|
MediaScannerConnection.scanFile(context, new String[] { compressedFile.getAbsolutePath() }, new String[] { "image/jpeg" }, null);
|
|
|
- // 保存最终截图成功
|
|
|
- // 根据URI获取图片的base64字符串
|
|
|
+ // 保存最终截图成功,根据URI获取图片的base64字符串
|
|
|
photoBase64 = Base64Tool.getBase64FromFilePath(compressedFile.getAbsolutePath());
|
|
|
|
|
|
if (TextUtils.isEmpty(photoBase64)) {
|
|
|
photoBase64 = Base64Tool.getBase64FromUri(context, uri);
|
|
|
}
|
|
|
|
|
|
+ //从相册选择图片上传的话,不要删除原图
|
|
|
+ if (file != compressedFile) {
|
|
|
+ file.delete();
|
|
|
+ compressedFile.delete();
|
|
|
+ } else {
|
|
|
+ file.delete();
|
|
|
+ }
|
|
|
+
|
|
|
if (TextUtils.isEmpty(photoBase64)) {
|
|
|
emitter.onError(new Exception("Empty image"));
|
|
|
} else {
|
|
|
@@ -406,7 +420,14 @@ public class OperationPresenter extends BasePresenter<IOperationView> {
|
|
|
.setTargetDir(file.getParentFile().getAbsolutePath()).get();
|
|
|
if (fileList != null && fileList.size() == 1) {
|
|
|
File compressedFile = fileList.get(0);
|
|
|
- // 通知相册去获取
|
|
|
+
|
|
|
+// File compressedFile = new Compressor(context.getApplicationContext())
|
|
|
+// .setQuality(99)
|
|
|
+// .setDestinationDirectoryPath(file.getParentFile().getAbsolutePath())
|
|
|
+// .compressToFile(file, "cp_" + file.getName());
|
|
|
+//
|
|
|
+// if (compressedFile.exists()) {
|
|
|
+ // 通知相册去获取
|
|
|
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字符串
|