Skip to content

Commit 74b7a5e

Browse files
author
fengjian
committed
add save method to BitmapLess
1 parent 810d604 commit 74b7a5e

2 files changed

Lines changed: 57 additions & 1 deletion

File tree

lesscode-core/src/main/java/com/jayfeng/lesscode/core/BitmapLess.java

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,14 @@
44
import android.graphics.Bitmap;
55
import android.graphics.BitmapFactory;
66
import android.graphics.Matrix;
7+
import android.os.Environment;
78

9+
import java.io.File;
10+
import java.io.FileNotFoundException;
11+
import java.io.FileOutputStream;
12+
import java.io.IOException;
813
import java.io.InputStream;
14+
import java.util.UUID;
915

1016
public final class BitmapLess {
1117

@@ -162,4 +168,54 @@ public final class BitmapLess {
162168

163169
return bitmap;
164170
}
171+
172+
/**
173+
* 保存到本地,默认路径/mnt/sdcard/<package>/save/
174+
* @param bitmap
175+
* @param format
176+
* @param quality
177+
* @param context
178+
* @return
179+
*/
180+
public static String $save(Bitmap bitmap, Bitmap.CompressFormat format, int quality, Context context) {
181+
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
182+
return null;
183+
}
184+
185+
File dir = new File(Environment.getExternalStorageDirectory() + "/" + context.getPackageName() + "/save/");
186+
if (!dir.exists()) {
187+
dir.mkdirs();
188+
}
189+
File destFile = new File(dir, UUID.randomUUID().toString());
190+
return $save(bitmap, format, quality, destFile);
191+
}
192+
193+
/**
194+
* 保存到本地destFile
195+
* @param bitmap
196+
* @param format
197+
* @param quality
198+
* @param destFile
199+
* @return
200+
*/
201+
public static String $save(Bitmap bitmap, Bitmap.CompressFormat format, int quality, File destFile) {
202+
try {
203+
FileOutputStream out = new FileOutputStream(destFile);
204+
if (bitmap.compress(format, quality, out)) {
205+
out.flush();
206+
out.close();
207+
}
208+
209+
if (bitmap != null && !bitmap.isRecycled()) {
210+
bitmap.recycle();
211+
}
212+
213+
return destFile.getAbsolutePath();
214+
} catch (FileNotFoundException e) {
215+
e.printStackTrace();
216+
} catch (IOException e) {
217+
e.printStackTrace();
218+
}
219+
return null;
220+
}
165221
}

lesscode-core/src/main/java/com/jayfeng/lesscode/core/ImageLess.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import java.io.IOException;
66

7-
public class ImageLess {
7+
public final class ImageLess {
88

99
/**
1010
* 获取图片的exif的旋转角度

0 commit comments

Comments
 (0)