Android PNG/JPG图ARGB_8888/RGB_565‌解码形成Bitmap在物理内存占用大小的简单计算

Android PNG/JPG图ARGB_8888/RGB_565‌解码形成Bitmap在物理内存占用大小的简单计算

 

Android的Bitmap 是一个用于表示图像数据的核心类,代表一张图片在内存中的存储,Bitmap存储了图像的像素信息数据。

Bitmap把图像理解为像素点组成的二维矩阵,每个像素点存储对应位置的一系列 ARGB 值(透明度 + 红绿蓝通道)。

Bitmap在内存中占用大小的关键计算公式:

‌内存 = 宽度(px) × 高度(px) × 每像素所需的字节数

一字节即1 Byte,1 Byte = 8 bit。‌

ARGB_8888为: 4 字节

RGB_565‌为: 2 字节。

 

(1) ARGB_8888

例如,一张350 x 350的PNG图片,PNG 支持透明度,默认使用 ARGB_8888(每个像素存储 ARGB 通道,共 4 字节),在内存占用的计算方法:

‌宽度‌:350 像素

‌高度‌:350 像素

‌每像素字节数‌:Bitmap.Config 决定,默认 ARGB_8888,占 ‌4 字节‌。

内存大小 = 350 × 350 × 4 字节  =  490,000 Byte ≈ 478.5 KB

注意‌:无论原图是 PNG(无损压缩)还是 JPEG(有损压缩),解码后的内存占用仅由像素数据决定,与磁盘文件格式无关。

 

(2)RGB_565‌

对于RGB_565格式,每个像素占用2字节(16位),其中红色(R)占5位,绿色(G)占6位,蓝色(B)占5位,不包含透明度通道(Alpha)。若设定Bitmap.Config是‌RGB_565‌(无透明度,2 字节):

350 × 350 × 2 = 245,000 Byte ≈ 239.3 KB

适用于不透明图片,色彩质量略低。

 

 

Android BitmapFactory.decodeResource读取原始图片装载成原始宽高Bitmap,Kotlin-CSDN博客文章浏览阅读1.5k次。本文介绍了如何使用Kotlin在Android中通过BitmapFactory.decodeResource获取Drawable的原始宽度和高度,然后创建一个与其尺寸匹配的Bitmap。 https://blog.csdn.net/zhangphil/article/details/134449577

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/542.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python实现简单的地图绘制与标记20250705

用python语言绘制显示范围不大于上海地区的地图 您的代码实现了一个 上海武馆地理信息系统,主要功能是通过可视化地图展示上海各区的传统武术馆信息。 通过和deeps对话一晚上实现的,我就是描述修改 高德的api key我搞了一会,平时很少接触密…

Kafka消息积压全面解决方案:从应急处理到系统优化

Kafka消息积压全面解决方案:从应急处理到系统优化 一、问题诊断与监控 1.1 确认积压情况 基础检查命令: # 查看消费者组滞后情况 kafka-consumer-groups.sh --bootstrap-server kafka:9092 \ --describe --group file-transcode-group# 查看主题详情…

MAX3485在MCU芯片AS32S601-485通信外设中的应用

在工业通信领域,RS-485 总线因其良好的抗干扰性、长传输距离和多节点通信能力而被广泛应用。MAX3485 作为一款 3.3V 供电的半双工 RS-485/RS-422 收发器芯片,在构建 485 通信外设时具有重要价值。本文将详细介绍 MAX3485 芯片的核心特性、硬件设计要点、…

基于区块链的物联网(IoT)安全通信与数据共享的典型实例

以下是一个基于区块链的物联网(IoT)安全通信与数据共享的典型实例,结合技术实现原理和实际应用场景: 实例:冷链药品物流监控系统 背景需求 某医药企业需运输高价值疫苗(如新冠疫苗)&#xff0…

【机器学习3】机器学习(鸢尾花分类)项目核心流程与企业实践差异分析

文章目录 一、机器学习项目的核心流程1、数据理解与准备:项目成败的关键2、 模型训练与评估:让数据说话3、模型验证与部署:确保真实世界的可靠性 二、学术实验与企业实践的核心差异1、最关键差异:问题复杂度的数量级差异2、次要但…

【阿里巴巴JAVA开发手册】IDE的text file encoding设置为UTF-8; IDE中文件的换行符使用Unix格式,不要使用Windows格式。

问题:当使用 IDEA SSH 远程开发时,SFTP 同步的 Windows 本地编辑的 config/plugin_config 文件文本内容中 “换行符”与 Unix、Linux 的文件文本内容换行符字符集不一致,导致 docker 容器中自定义 /opt/seatunnel/bin/install_plugin 在执行以…

【数据结构】哈希——闭散列/开散列模拟实现(C++)

目录 unordered_map/unordered_map和map/set的区别 哈希的实现: 哈希的原理 直接定址法 除留余数法 闭散列: 线性探测 模拟实现: 哈希表的数据 哈希表结构 Insert Find Erase 二次探测 开散列: 模拟实现&#xff1…

协同过滤推荐算法

协同过滤(Collaborative Filtering)是推荐系统中最经典的算法之一,其核心思想是 “物以类聚,人以群分”,即通过分析用户的历史行为数据,找到与目标用户相似的用户群体或相似的物品,从而为目标用…

免费一键自动化申请、续期、部署、监控所有 SSL/TLS 证书,ALLinSSL开源免费的 SSL 证书自动化管理平台

目录 一、前言二、ALLinSSL 简介亮点核心功能 三、操作步骤部署安装授权DNS服务商授权你的主机服务器自动化部署ssl测试自动申请ssl证书 一、前言 SSL证书是每个网站必备的,但是现在的免费的ssl证书有效期是3个月,以后CA/B Forum 调整 SSL 证书最长有效期…

KMP(Kotlin Multiplatform)改造(Android/iOS)老项目

一、背景说明 新建KMP项目的情况下,无论是界面,还是业务逻辑都可以正常运行。但大多数情况下,我们是在原有项目基础上逐步改造,就需要把KMP项目作为依赖添加到原有项目中,并且保证KMP项目、原Android/iOS项目都能正常…

Vue如何处理数据、v-HTML的使用及总结

Vue如何处理数据、v-HTML的使用及总结 Vue是如何处理数据的 这里我们先看一段代码 const app Vue.createApp({data() {return {courseGoalA: 学习Vue,最终掌握Vue,courseGoalB: 掌握Vue,并构建相应的应用程序,vueLink: https://cn.vuejs.org/};},methods: {outputGoal() {c…

Linux基本命令篇 —— alias命令

alias是Linux/Unix系统中一个非常实用的命令,用于创建命令的别名。它允许用户为常用命令或命令组合创建简短的替代名称,从而提高工作效率。 目录 一、基本语法 二、常用用法 1. 创建临时别名 2. 查看已定义的别名 3. 查看特定别名 4. 删除别名 三、…