bitmap和图片文件的转换

本文介绍了如何使用Bitmap对象进行图片的处理与存储。包括将Bitmap对象保存为图片文件的方法及注意事项,同时给出了从图片文件中读取Bitmap对象的示例代码。

Bitmap对象保存为图片文件:
public static File saveBitMapToFile(Context context, String fileName, Bitmap bitmap, boolean isCover) {
   if(null == context || null == bitmap) {
      return null;
   }
   if(TextUtils.isEmpty(fileName)) {
      return null;
   }
   FileOutputStream fOut = null;
   try {
      File file = null;
      String fileDstPath = "";
      if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {
         // 保存到sd卡
         fileDstPath = Environment.getExternalStorageDirectory().getAbsolutePath()
               + File.separator + "phonelive_bitmap" + File.separator + fileName;

         File homeDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath()
               + File.separator + "phonelive_bitmap" + File.separator);
         if (!homeDir.exists()) {
            homeDir.mkdirs();
         }
      } else {
         // 保存到file目录
         fileDstPath = context.getFilesDir().getAbsolutePath()
               + File.separator + "phonelive_bitmap" + File.separator + fileName;

         File homeDir = new File(context.getFilesDir().getAbsolutePath()
               + File.separator + "phonelive_bitmap" + File.separator);
         if (!homeDir.exists()) {
            homeDir.mkdir();
         }
      }

      file = new File(fileDstPath);

      if (!file.exists() || isCover) {
         // 简单起见,先删除老文件,不管它是否存在。
         file.delete();

         fOut = new FileOutputStream(file);
         if (fileName.endsWith(".jpg")) {
            bitmap.compress(Bitmap.CompressFormat.JPEG, 75, fOut);
         } else {
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut);
         }
         fOut.flush();
         bitmap.recycle();
      }

      Log.i("FileSave", "saveDrawableToFile " + fileName
            + " success, save path is " + fileDstPath);
      return file;
   } catch (Exception e) {
      Log.e("FileSave", "saveDrawableToFile: " + fileName + " , error", e);
      return null;
   } finally {
      if(null != fOut) {
         try {
            fOut.close();
         } catch (Exception e) {
            Log.e("FileSave", "saveDrawableToFile, close error", e);
         }
      }
   }
}
图片文件转为Bitmap对象:

String filePath="c:/01.jpg"; Bitmap bitmap=BitmapFactory.decodeFile(filePath,getBitmapOption(2)); //将图片的长和宽缩小味原来的1/2 private Options getBitmapOption(int inSampleSize)

{         System.gc();         BitmapFactory.Options options = new BitmapFactory.Options();         options.inPurgeable = true;         options.inSampleSize = inSampleSize;         return options; }

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值