首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何测量或估计不支持bitmap.getByteCount()的Android版本中的位图大小

在不支持bitmap.getByteCount()的Android版本中,可以使用以下方法来测量或估计位图的大小:

  1. 使用bitmap.getRowBytes()方法获取每行所占用的字节数,然后乘以位图的高度,即可得到位图的总字节数。但需要注意的是,这种方法只适用于位图没有经过压缩的情况。
  2. 如果位图经过了压缩,可以通过以下步骤来估计位图的大小:
    • 使用bitmap.getWidth()bitmap.getHeight()方法获取位图的宽度和高度。
    • 使用bitmap.getConfig()方法获取位图的像素格式。
    • 根据像素格式,可以计算出每个像素所占用的字节数。例如,对于ARGB_8888格式的位图,每个像素占用4个字节。
    • 将每个像素所占用的字节数乘以位图的宽度和高度,即可得到位图的总字节数。
  3. 另一种方法是通过将位图转换为字节数组,然后获取字节数组的长度来测量位图的大小。可以使用以下步骤:
    • 创建一个ByteArrayOutputStream对象。
    • 使用bitmap.compress()方法将位图压缩到字节数组输出流中。
    • 调用toByteArray()方法获取字节数组。
    • 使用length属性获取字节数组的长度,即可得到位图的大小。

以上是测量或估计位图大小的几种方法,具体选择哪种方法取决于位图是否经过压缩以及所支持的Android版本。在实际应用中,可以根据具体情况选择最合适的方法来测量位图大小。

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅为示例,具体的产品选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Bitmap图片压缩,大图加载防止OOM

[在这里插入图片描述] 前言 Android官网处理位图 和 [高效加载大型位图 ](https://developer.android.com/topic/performance/graphics/...load-bitmap) 这两篇文章已经做了很明确指出了如何高效加载大图。...先看一些基础知识(后面有答案) Android官网-提供备用位图 这篇文章链接有讲到: 要在像素密度不同设备上提供良好图形质量,您应该以相应分辨率在应用中提供每个位图多个版本(针对每个密度级别提供一个版本...,不支持 png图片 压缩。...使用inSampleSize进行压缩 既然图片尺寸已知,便可用于确定应将完整图片加载到内存,还是应改为加载下采样版本。以下是需要考虑一些因素: 在内存中加载完整图片估计内存使用量。

2.7K00

Android开发Bitmap高效加载使用详解

内存,android提供方法bitmap.getByteCount() 假如现在mipmap-xhdpi 目录下,有一个 200 * 200 像素图片,运行加载它,看它输出尺寸。...360000 现在把图片转移到mipmap-xxhdpi bitmap.getByteCount输出结果为160000 那么mipmap-xhdpi 目录下为何会大这么多呢?...对应densityDpi是480 density 和 densityDpi 在 Android ,都有标准 API 可以拿到,如下。...,会影响到bitmap像素如何、色彩、以及是否有透明度能力) Bitmap.Config ALPHA_8 这个参数每个像素占用1字节空间。...()方法得到inSampleSize=2, 像素数为原图1/4,内存大小总共就变成了之前1/8,这样高效加载图片,就会远离oom。

94420
  • Bitmap图片压缩,大图加载防止OOM

    在这里插入图片描述 前言 Android官网处理位图 和 高效加载大型位图 这两篇文章已经做了很明确指出了如何高效加载大图。...先看一些基础知识(后面有答案) Android官网-提供备用位图 这篇文章链接有讲到: 要在像素密度不同设备上提供良好图形质量,您应该以相应分辨率在应用中提供每个位图多个版本(针对每个密度级别提供一个版本...image 例如,如果您有一个可绘制位图资源,它在密度屏幕上大小为 48x48 像素,那么它在其他各种密度屏幕上大小应该为: 36x36 (0.75x) - 低密度 (ldpi) 48x48(1.0x...,不支持 png图片 压缩。...使用inSampleSize进行压缩 既然图片尺寸已知,便可用于确定应将完整图片加载到内存,还是应改为加载下采样版本。以下是需要考虑一些因素: 在内存中加载完整图片估计内存使用量。

    1.9K20

    AndroidBitmap详细介绍

    Android中计算bitmap大小bitmap.getByteCount()(返回byte) 扫盲:1M=1024KB=1024*1024byte 一般1920X1080尺寸图片在内存大小...() / 1024 / 1024); Log.i("wechat", "压缩后图片大小" + (bitmap.getByteCount() / 1024 / 1024) + "M宽度为" +...dstWidth 新位图期望宽度 dstHeight 新位图期望高度 filter 为true则选择抗锯齿 补充抗锯齿知识点 在Android,目前,我知道有两种出现锯齿情况。...用Canvas绘制位图情况。 在用Canvas绘制位图时,一般地,我们使用drawBitmap函数家族, 在这些函数,都有一个Paint参数, 要做到防止锯齿,我们就要使用到这个参数。...()); } private static void loga(Bitmap bitmap, byte[] bytes) { Log.i("wechat", "压缩后图片大小" + (bitmap.getByteCount

    2.4K10

    Android-Bitmap

    所以,一张 png 或者 jpg 格式图片大小,跟这张图片加载进内存所占用大小完全是两回事。但图片在内存大小和Bitmap大小相同 1.2.问题二: 如何计算图片在内存大小?...16位图像相比8位图像有较好色彩过渡,更加细腻,携带色彩信息可以更加丰富。其他位类同。 如果一个8位图像有10MB大小,它变成16时,大小就要翻一翻变成20MB。其他位类同。...原因在于:上面的计算方式并不准确,我们要考虑不同设备以及同一设备不同条件: 2.1.1同设备不同设备不同条件又分好多种: 不同drawable文件 磁盘res 图片格式由png转为jpg 那我们就从同设备不同...而后者不支持透明度。 3.2减少图片像素点大小 降低分辨率不靠谱那就只好试试减少图片像素点大小了,也就是图片尺寸压缩。...我们都知道在Android3.0以前Bitmap是存放在内存,我们需要回收native层和Java层内存,在Android3.0以后Bitmap是存放在堆,我们只要回收堆内存即可,官方建议我们

    1.4K20

    【科技】Google推出首个Android P开发者预览版

    这是Android下一个版本早期版本,它被称为Android P,直到Google选择以该字母开头名称。...如果你想要简短版本,以下是首个Android P开发者预览亮点:内置支持显示图样(读取:凹槽)、调整快速设置面板,带圆角通知抽屉,回复内联时通知消息,通知智能回复,用于指纹验证一致UI,以及限制应用程序在后台执行隐私增强功能...用于位图和可绘制ImageDecoder: ImageDecoder(不支持BitmapFactory)允许你从字节缓存、文件URI创建位图绘图。...作业可以声明其估计数据大小,信号预取以及指定详细网络需求。运营商可以将网络报告为拥塞未计量,而JobScheduler则根据网络状态管理工作。...因此,应用程序可以使用RTT API来测量到附近WiFi接入点(AP)距离。了解到三个更多AP距离,可以计算设备位置,准确度为1到2米。

    1.3K60

    瀚海微SD NAND存储功能描述(23)速度等级测量条件和要求

    速度等级测量条件和要求测量条件各速度等级测量条件如下表所示。Speed Class 10卡应支持高速模式。更高速度等级可能需要更高频率更大RU尺寸。...注:TFR(4KB)值在版本3.00 Pm更改,可用于第2类至第6类。当Pm=0时,主机认为Pm为2 ~ 6类Pw一半。...有两种测量Pw方法。如果AU大小等于小于4MB;Pw定义为AU上最小平均写性能。这与SDSC和SDHC定义相同。...卡Pw定义为内存区域中所有au最小性能。无论其大小如何,AU都是Speed Class主机写入数据内存区域大小以RU为单位,从上到下依次排列。...位图从任何512字节边界地址开始写入,大小从512字节到16kb字节不等。在开始记录之前应该创建一个目录条目,并且应该通过512字节单块写入(CMD24CMD25)来写入相同块。

    6910

    Android 内存优化】Bitmap 内存占用计算 ( Bitmap 图片内存占用分析 | Bitmap 内存占用计算 | Bitmap 不同像素密度间转换 )

    Bitmap 对象在内存存储像素格式有两种 : ARGB_8888 和 RGB_555 ; ① ARGB_8888 像素格式 : Alpha ( 透明度 ) , Red ( 红 ) , Green...( 绿 ) , Blue ( 蓝 ) , 各占 1 字节 , 每个像素点占 4 字节 , 一张宽度 W , 高度 H 图片 , 在内存大小是 W \times H \times 4..., 在内存大小是 W \times H \times 2 字节 ; Android Bitmap 在内存大小与图片大小无关 , 只与像素格式和像素点个数有关 ; 内存大小只与分辨率有关...Bitmap 占内存大小计算 : Android 默认使用 ARGB_8888 像素格式 , 每个像素点占 4 字节 , 上图宽 5224 , 高 2678; 5224 \times 2678 \...times 4 = 55,959,488 最终 Bitmap 在内存大小是 55,959,488 字节 ; 三、Bitmap 内存占用与像素密度 ---- 1 .

    15.3K20

    借鉴Glide思想二次封装Fresco背景二次封装使用示例Github 地址

    SimpleDrawwView 控件进行占位图等等配置: <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/sdv_fresco..." android:layout_width="500dp" android:layout_height="500dp" fresco:actualImageScaleType...后,界面上会弹出你可用 api,这些就是我开放给你入口,我将这个使用过程划分成几个步骤,每个步骤能做什么,该做什么,我都给你规定好了,你参照着提示,直接从方法命名上就能够知道该如何使用了,AndroidStudio...这里就两个入口,一个是用来初始化 Fresco : init(Context) 这个内部封装了一些默认初始化配置,比如内存大小配置,内部日志配置等等。...以上,就是 DFresco 组件封装思想,欢迎指点一下哈~ 另外,参考了 Glide 一些处理,当你 intoTarget 是传入了 SimpleDraweeView 控件时,DFresco 内部会自动根据控件大小对图片进行一次分辨率压缩

    75220

    用 TensorFlow Lite 在安卓系统上实现即时人体姿态跟踪

    PoseNet是一种视觉模型,通过检测关键身体部位位置来估计人在图像视频姿势。例如,模型可以估计一个人肘部和/膝盖在图像位置。...姿势估计模型不识别图像的人,只识别关键身体部位位置。 TensorFlowLite正在共享一个Android示例应用程序,该应用程序利用设备摄像头实时检测和显示个人关键身体部位。 ?...姿态估计有很多可能性。举几个例子,开发人员可以基于身体图像增强现实,动画计算机图形字符,并分析运动员在运动步态。...应用程序对每个传入相机图像执行以下步骤: 1、从相机预览捕获图像数据,并将其从YUV_420_888转换为ARGB_888格式。 2、创建一个位图对象来保存RGB格式帧数据像素。...裁剪位图并将其缩放到模型输入大小,以便将其传递给模型。 3、从PoseNet库调用estimateSinglePose()函数来获取Person对象。 4、将位图缩放到屏幕大小

    3.7K30

    Android训练课程(Android Training) - 高效显示图片

    高效加载大尺寸位图 图片有各种形状和大小. 在很多情况下,它们有更大需要超过一个典型应用程序界面。...BitmapFun 示例包含了一些类,展示了如何设计你程序以在不同Android版本更有效率工作。...Android 2.3添加了并发垃圾回收,这意味着,失去引用图像内存很快被回收。 在 Android 2.3.3 (API 级别 10) 及以下,位图后备像素数据被存储在原生内存。...Android 3.0 (API 级别 11),像素数据也被存储在Dalvik ,和它关联到位图一起了。 下面的章节描述了 在不同Android版本如何优化内存管理。...在运行在Android 3.0或者更高版本一个应用,一个图片被从 LruCache移除时,再在一个HashSet 中放置一个位图软引用,使用inBitmap标记它以尽可能被重用。

    2.9K00

    Android 9.0 强势来袭,带来了哪些新特性?

    为了保持隐私,只有手机能够确定到接入点距离; 接入点没有此信息。 如果我们设备测量到3个更多接入点距离,我们可以使用多点定位算法来估算最适合这些测量设备位置。结果通常在1至2米范围内准确。...JobScheduler可以声明其估计数据大小,信号预取,并指定详细网络要求。JobScheduler然后根据网络状态管理工作。...硬件安全模块 安装了运行Android 9更高版本受支持设备可以使用StrongBox Keymaster,它是驻留在硬件安全模块Keymaster HAL实现。...通过将APK文件过去签名证书链接到现在签名证书证书,此功能可以使你应用程序使用新签名证书进行签名。 注意:运行Android 8.1(API级别27)更低版本设备不支持更改签名证书。...DEX文件ART提前转换 在运行Android 9更高版本设备上,Android运行时(ART)提前编译器通过将应用程序包DEX文件转换为更紧凑表示形式,进一步优化压缩Dalvik可执行格式

    3.4K20

    浅谈 Android 屏幕适配

    测量空间点密度单位,最初应用于打印技术,它表示每英寸能打印上墨滴数量。较小 DPI 会产生不清晰图片。...图像分辨率一般被用于ps,用来改变图像清晰度。 密度无关像素 (dp) 在定义 UI 布局时应使用虚拟像素单位,用于以密度无关方式表示布局维度位置。...支持每种密度 位图可绘制对象相对大小 适配方案 密度独立性 应用显示在密度不同屏幕上时,如果它保持用户界面元素物理尺寸(从 用户视角),便可实现“密度独立性” 。...Android 系统可帮助您应用以两种方式实现密度独立性: 系统根据当前屏幕密度扩展 dp 单位数 系统在必要时可根据当前屏幕密度将可绘制对象资源扩展到适当大小 nodpi:它可用于您不希望缩放以匹配设备密度位图资源...{ compile'com.android.support:percent:25.1.0' } 使用布局别名 最小宽度限定符仅适用于 Android 3.2 及更高版本

    1.3K10

    Android性能优化(五)之细说Bitmap

    在上一篇《Android性能优化(四)之内存优化实战》谈到那个内存大胖子Bitmap,Bitmap对内存影响极大。...Bitmap内存模型 Android Bitmap内存管理随着系统版本迭代也有演进: 1.在Android 2.2(API8)之前,当GC工作时,应用线程会暂停工作,同步GC会影响性能。...Native内存像素数据并不会以可预测方式进行同步回收,有可能会导致内存升高甚至OOM。而在Android3.0之后,Bitmap像素数据也被放在了Dalvik Heap。 2....官方提供了一个使用Recycle实例:使用引用计数来判断Bitmap是否被展示缓存,判断能否被回收。...而在Android3.0之后,Bitmap像素数据也被放在了Dalvik Heap。 2.

    2.5K50

    创建支持多种屏幕尺寸Android应用

    声明支持不同屏幕尺寸也会影响系统如何在较大屏幕上运行应用程序,尤其是,不论应用程序是否运行在屏幕兼容模式。 为了申明应用程序支持屏幕大小,应该在manifest文件包含元素。...同样地,没有必要提供不同绘图给不同屏幕尺寸,因为九补丁位图能调整任何大小。然而,应当提供可替代九补丁文件版本给不同屏幕密度。...同样,如果在应用程序包含了其他位图绘图(如菜单图标应用程序其他图像),应当提供可替代版本或者每一个版本给不同密度。...然而,谷歌播放目前不支持过滤属性(在Android3.2上),因此,如果应用程序不支持小屏幕,应该继续使用其它尺寸属性。...如果正在创建一个使用BitmapFactory(如从文件或者流)位图,可以使用BitmapFactory。选择定义一个已经存在位图特性,这决定系统是否如何调整位图

    2.6K60

    Android-图片压缩(二)-纯干货

    ,这里我将会带着大家做一款压缩工具,功能媲美鲁班压缩,而且还带有鲁班没有的功能,如输出指定格式等,在这个过程我们要学会如何获取bitmap,第一篇已经罗列了多种从项目中取图片转bitmap,这里就不多说了...目录 1、图片相关概念    1.1 ARGB介绍       1.2 Bitmap概念   1.3 色彩模式   1.4 色深和位深   1.5 内存Bitmap大小   1.6 系统一般分配大小...通道,Android切图素材多采用此格式 jpeg:有损压缩图片格式,不支持背景透明,适用于照片等色彩丰富大图压缩,不适合logo webp:是一种同时提供了有损压缩和无损压缩图片格式...在Android4.0(API 14)之后支持,无损和透明在Android4.3(API18)之后支持 采用webp能够在保持图片清晰度情况下,可以有效减小图片所占有的磁盘空间大小...AndroidBitmap所占内存大小计算方式:图片长度 x 图片宽度 x 一个像素点占用字节数 3、压缩常见方式 质量压缩:降低存储体积(不改变内存Bitmap大小) 采样压缩

    1.1K20

    Tensorflow Lite人体姿势跟踪功能上线:基于PosNet实时人体姿态估计

    「PoseNet」是一种视觉模型,它可以通过检测关键身体部位位置来估计图像或者视频的人体姿势。例如,该模型可以估计图像中人手肘和/膝盖位置。...通过姿势估计可以实现多种可能性。举几个例子,开发者可以在身体图像上进行增强现实,动画化计算机图形人物,以及分析运动员在运动步态。...该应用程序对每张传入摄像头图像执行以下操作: 从摄像头预览获取图像数据并将它从「YUV_420_888」转换成「ARGB_888」格式。 创建一个位图对象来保存来自 RGB 格式帧数据像素。...将位图裁剪并缩放到模型输入大小,以便将其传递给模型。 从 PoseNet 库调用「estimateSinglePose()」函数来获取「Person」对象。...将位图缩放回屏幕大小,在「Canvas」对象上绘制新位图。 使用从「Person」对象获取关键点位置在画布上绘制骨架。显示置信度超过特定阈值(默认值为 0.2)关键点。

    2.1K30

    2--安卓多媒体之Bitmap操作全解析

    矩阵变换分析 ---- 一、Bitmap简介 我们知道.bmp格式图片文件,它是一种无压缩,保留全信息图片格式,称为位图 Bitmap是一个安卓对图片封装类,名称便是位图,它可以解析二进制图片文件...(如,宽、高、每个像素点等) 二进制流来源可以是多种多样(文件、网络、项目资源、二进制流、字节数组等),其实本质是一样 安卓中使用位图工厂:BitmapFactory来解析二进制图片流,其中提供了很多...L.d(bitmap.getGenerationId() + L.l());//id:464 L.d(bitmap.getPixel(0, 0) + L.l());//某点像素:-3159629 L.d(bitmap.getByteCount...就像一把剑,没有人用就没有意义一样 最常用展示方式就是使用ImageViewsetImageBitmap()方法 mIdIvShow.setImageBitmap(bitmap); 3.如何根据已知...Matrix.png ---- 下节讲述Android自身对Matrix封装函数

    96020
    领券