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


相关推荐: 如何制作一个表白网站视频,关于勇敢表白的小标题?  Laravel如何处理表单验证?(Requests代码示例)  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  Laravel如何使用Telescope进行调试?(安装和使用教程)  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  JavaScript Ajax实现异步通信  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  如何在景安云服务器上绑定域名并配置虚拟主机?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  Linux后台任务运行方法_nohup与&使用技巧【技巧】  免费网站制作appp,免费制作app哪个平台好?  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  Laravel如何使用Vite进行前端资源打包?(配置示例)  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  lovemo网页版地址 lovemo官网手机登录  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel如何配置和使用缓存?(Redis代码示例)  如何用花生壳三步快速搭建专属网站?  在centOS 7安装mysql 5.7的详细教程  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  移动端脚本框架Hammer.js  佛山企业网站制作公司有哪些,沟通100网上服务官网?  php485函数参数是什么意思_php485各参数详细说明【介绍】  如何实现建站之星域名转发设置?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  PHP正则匹配日期和时间(时间戳转换)的实例代码  Python文件操作最佳实践_稳定性说明【指导】  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  如何在阿里云服务器自主搭建网站?  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  香港服务器如何优化才能显著提升网站加载速度?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  BootStrap整体框架之基础布局组件  Laravel如何使用Sanctum进行API认证?(SPA实战)  nginx修改上传文件大小限制的方法  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】