package coder.prettygirls.util;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.PixelFormat;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.provider.MediaStore;
import android.util.Log;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import coder.prettygirls.app.MyApplication;
/**
* bitmap处理工具类
* Created by oracleen on 2016/7/5.
*/
public class BitmapUtil {
public static android.graphics.Bitmap drawableToBitmap(Drawable drawable) {
android.graphics.Bitmap bitmap = android.graphics.Bitmap.createBitmap(
drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(),
drawable.getOpacity() != PixelFormat.OPAQUE ? android.graphics.Bitmap.Config.ARGB_8888
: android.graphics.Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
//canvas.setBitmap(bitmap);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
drawable.draw(canvas);
return bitmap;
}
public static boolean saveBitmap(Bitmap bitmap, String dir, String name, boolean isShowPhotos) {
File path = new File(dir);
if (!path.exists()) {
path.mkdirs();
}
File file = new File(path + "/" + name);
if (file.exists()) {
file.delete();
}
if (!file.exists()) {
try {
file.createNewFile();
} catch (Exception e) {
e.printStackTrace();
return false;
}
} else {
return true;
}
FileOutputStream fileOutputStream = null;
try {
fileOutputStream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100,
fileOutputStream);
fileOutputStream.flush();
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
try {
fileOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
// 其次把文件插入到系统图库
if (isShowPhotos) {
try {
MediaStore.Images.Media.insertImage(MyApplication.getIntstance().getContentResolver(),
file.getAbsolutePath(), name, null);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// 最后通知图库更新
MyApplication.getIntstance().sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + file)));
}
return true;
}
}