Android中将Bitmap对象以PNG格式保存在内部存储中的方法

发布时间 - 2026-01-11 02:41:29    点击率:

在Android中进行图像处理的任务时,有时我们希望将处理后的结果以图像文件的格式保存在内部存储空间中,本文以此为目的,介绍将Bitmap对象的数据以PNG格式保存下来的方法。

1、添加权限

由于是对SD card进行操作,必不可少的就是为你的程序添加读写权限,需要添加的内容如下:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>

对这两个权限进行简要解释如下:

"android.permission.MOUNT_UNMOUNT_FILESYSTEMS"-->允许挂载和反挂载文件系统可移动存储
"android.permission.WRITE_EXTERNAL_STORAGE"-->模拟器中sdcard中创建文件夹的权限

2、保存图片的相关代码

代码比较简单,在这里存储位置是写的绝对路径,大家可以通过使用Environment获取不同位置路径。

Tips:在使用该函数的时候,记得把文件的扩展名带上。

private void saveBitmap(Bitmap bitmap,String bitName) throws IOException
  {
    File file = new File("/sdcard/DCIM/Camera/"+bitName);
    if(file.exists()){
      file.delete();
    }
    FileOutputStream out;
    try{
      out = new FileOutputStream(file);
      if(bitmap.compress(Bitmap.CompressFormat.PNG, 90, out))
      {
        out.flush();
        out.close();
      }
    }
    catch (FileNotFoundException e)
    {
      e.printStackTrace();
    }
    catch (IOException e)
    {
      e.printStackTrace();
    }
  }

PS:下面看下android中Bitmap对象怎么保存为文件

Bitmap类有一compress成员,可以把bitmap保存到一个stream中。

例如:

public void saveMyBitmap(String bitName) throws IOException { 
  File f = new File("/sdcard/Note/" + bitName + ".png"); 
  f.createNewFile(); 
  FileOutputStream fOut = null; 
  try { 
      fOut = new FileOutputStream(f); 
  } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
  } 
  mBitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut); 
  try { 
      fOut.flush(); 
  } catch (IOException e) { 
      e.printStackTrace(); 
  } 
  try { 
      fOut.close(); 
  } catch (IOException e) { 
      e.printStackTrace(); 
  } 
} 

总结

以上所述是小编给大家介绍的Android中将Bitmap对象以PNG格式保存在内部存储中,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# android  # bitmap对象  # Android List(集合)中的对象以某一个字段排序案例  # Android使用FontMetrics对象计算位置坐标  # Android使用Canvas对象实现刮刮乐效果  # Android编程实现全局获取Context及使用Intent传递对象的方法详解  # Android中利用C++处理Bitmap对象的实现方法  # Android中实现长按修改ListView对象的内容  # Android中传递对象的三种方法的实现  # Android中深入学习对象的四种引用类型  # 小编  # 在内部  # 有一  # 在这里  # 在此  # 这两个  # 可以通过  # 给大家  # 扩展名  # 必不可少  # 所述  # 此为  # 图像处理  # 给我留言  # 感谢大家  # 保存为  # 移动存储  # 疑问请  # 有任何  # 器中 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何基于云服务器快速搭建个人网站?  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  PHP正则匹配日期和时间(时间戳转换)的实例代码  Laravel如何集成Inertia.js与Vue/React?(安装配置)  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  如何挑选最适合建站的高性能VPS主机?  如何在阿里云虚拟主机上快速搭建个人网站?  Laravel如何与Inertia.js和Vue/React构建现代单页应用  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  Android Socket接口实现即时通讯实例代码  lovemo网页版地址 lovemo官网手机登录  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  Linux系统运维自动化项目教程_Ansible批量管理实战  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  如何用AI帮你把自己的生活经历写成一个有趣的故事?  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  浅谈javascript alert和confirm的美化  Python函数文档自动校验_规范解析【教程】  如何快速完成中国万网建站详细流程?  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  Python制作简易注册登录系统  如何获取免费开源的自助建站系统源码?  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  开心动漫网站制作软件下载,十分开心动画为何停播?  Laravel中的withCount方法怎么高效统计关联模型数量  jquery插件bootstrapValidator表单验证详解  Laravel如何使用Vite进行前端资源打包?(配置示例)  实例解析angularjs的filter过滤器  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  如何在搬瓦工VPS快速搭建网站?  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  网站制作免费,什么网站能看正片电影?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  如何在七牛云存储上搭建网站并设置自定义域名?  个人摄影网站制作流程,摄影爱好者都去什么网站?  无锡营销型网站制作公司,无锡网选车牌流程?  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  制作企业网站建设方案,怎样建设一个公司网站?