android 计算Bitmap占byte大小,以及Bitmap中像素数的计算,另外再给出一个按尺寸裁剪图片的方法

Unity二维码生成全攻略:免费本地化实现与性能优化实践 二维码作为一种高效的信息编码与识别技术,其核心原理是将文本、URL等数据转换为特定格式的二维矩阵图形。在游戏开发与交互应用领域,二维码因其便捷的跨平台信息传递能力,常被用于实现资源分享、用户引导和离线数据交换等功能。对于Unity开发者而言,集成一个稳定、高效的本地二维码生成方案,能有效规避网络依赖、降低项目成本并保障数据隐私。本文基于QRCoder这一纯C#开源库,详细解析了在Unity中实现文本、图片及视频链接编码为二维码的完整流程,并深入探讨了通过异步生成、纹理对象池等技术手段进行性能优化的工程实践, 阅读详情

一,计算Bitmap的Byte大小

1.在SDK >= 3.1 

直接调用 Bitmap的  getByteCount() 方法。

2.在SDK<3.1

bitmap.getRowBytes() * bitmap.getHeight();


二,计算Bitmap的像素数

其实就是 bitmap.getHeight()*bitmap.getWidth(); 

另外补充一点:就是Bitmap占的存储空间大小(Bitmap的Byte大小)和Bitmap的像素数不一样。。。。

三,按尺寸裁剪Bitmap的方法(来自google官方),这个方法会返回 BitmapFactory.Options 的inSampleSize参数值

/**
	 * Calculate an inSampleSize for use in a {@link BitmapFactory.Options}
	 * object when decoding bitmaps using the decode* methods from
	 * {@link BitmapFactory}. This implementation calculates the closest
	 * inSampleSize that will result in the final decoded bitmap having a width
	 * and height equal to or larger than the requested width and height. This
	 * implementation does not ensure a power of 2 is returned for inSampleSize
	 * which can be faster when decoding but results in a larger bitmap which
	 * isn't as useful for caching purposes.
	 * 
	 * @param options
	 *            An options object with out* params already populated (run
	 *            through a decode* method with inJustDecodeBounds==true
	 * @param reqWidth
	 *            The requested width of the resulting bitmap
	 * @param reqHeight
	 *            The requested height of the resulting bitmap
	 * @return The value to be used for inSampleSize
	 */
	public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) {
		// Raw height and width of image
		final int height = options.outHeight;
		final int width = options.outWidth;
		int inSampleSize = 1;

		if (height > reqHeight || width > reqWidth) {
			if (width > height) {
				inSampleSize = Math.round((float) height / (float) reqHeight);
			} else {
				inSampleSize = Math.round((float) width / (float) reqWidth);
			}

			// This offers some additional logic in case the image has a strange
			// aspect ratio. For example, a panorama may have a much larger
			// width than height. In these cases the total pixels might still
			// end up being too large to fit comfortably in memory, so we should
			// be more aggressive with sample down the image (=larger
			// inSampleSize).
			
			final float totalPixels = width * height;

			// Anything more than 2x the requested pixels we'll sample down
			// further.
			// 任何超过2倍的请求像素,我们将品尝简化
			// 更多。
			final float totalReqPixelsCap = reqWidth * reqHeight * 2;

			while (totalPixels / (inSampleSize * inSampleSize) > totalReqPixelsCap) {
				inSampleSize++;
			}
		}
		return inSampleSize;
	}


Bitmap类和图像像素值获取方法 C#下读取、修改位置Bitmap,以及几种不同方法修改位图数据 立即下载

相关推荐

绝缘检测原理和绝缘电阻计算方法

绝缘检测的目的就是计算绝缘电阻,当绝缘电阻低于某个阈值,则很可能会造成电池短路、漏电,威胁人员安全

m0_56208280的博客 4万+

Bitmap占用内存大小的准确计算公式

一、已经持有了Bitmap对象,怎么知道它占用的内存大小 bitmap类本身 就有这个方法, bitmap.getByteCount()就行。它内部是计算方式:每一行的字节大小 * 总行数(即高度) android.graphics.Bitmap.java 源码 public final int getByteCount() { if (mRecycled) { Log.w(TAG, "Called getByteCount() on a rec...

u012845099的博客 2810

VSCode 1.85便携版安装与配置:解决远程服务器glibc版本过低报错的保姆级指南

本文详细介绍了如何通过VSCode 1.85便携版解决远程服务器glibc版本过低导致的兼容性问题。通过环境隔离和版本固化的方法,开发者可以在老旧服务器上稳定运行Remote-SSH插件,同时保留主力VSCode的配置。文章提供了从下载安装到深度配置的完整指南,帮助用户快速搭建稳定的开发环境。

weixin_30279315的博客 576

Android中Bitmap的简单分析

Bitmap数据存储位置 在Android 2.3.3(API10)之前,Bitmap的像素数据存放在Native内存 Android3.0之后8.0之前,Bitmap的像素数据被改成放在了Dalvik Heap(java堆)中 Android8.0之后,Bitmap的像素数据回到Native内存中,但是google改进后可以随着java对象的释放而被快速释放(并且新增了图片内存,提高了绘制效率) 为什么会放回native层 存natvie层用的是一个新的hardware的库,估计是为了更好的发挥硬件性

wangzici的博客 453

从零实现反激式电源仿真:LTspice高级应用实例

深入解析反激式开关电源的建模与仿真过程,利用LTspice实现从零搭建电路,精准验证电路仿真效果,提升电源设计效率与可靠性。

weixin_36149538的博客 1896

Vim 入门到够用:Linux 文本编辑器的三种模式、常用操作与实战技巧

i 进入编辑模式Esc 退出编辑模式回到命令模式: 从命令模式进入底行模式编辑,不一定非得“打开就直接打字”。一旦你接受了“模式”这件事,后面很多操作都会顺起来。学 Vim,不要追求一次学全,先把“命令模式—编辑模式—底行模式”这条主线练熟。只要这条主线通了,后面的复制、删除、搜索、替换,都是顺手补上去的能力。

Web安全工具库 798

【Android】技巧之像素换算

dip:device independent pixels(设备独立像素).不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA推荐使用dip,不依赖像素。 dip与屏幕密度有关,而屏幕密度又与具体的硬件有关,硬件设置不正确,有可能导致dip不能正常显示。在屏幕密度为160的屏幕上,1dip=1px.如你的屏幕分辨率是480*800,但是屏幕密度还是160,

会写代码的饭桶 1482

Zemax 中的 LED 阵列模型

这些光线是所有光线的子集,用于布局可视化,而不是详细分析。X 和 Y 散度(αx 和 αy)以度为单位,以不同的方式设置为 6 度和 12 度。每个 LED 都以朗伯模式(广角分布)发光,尽管有些 LED 具有内置光学元件,用于更窄或更聚焦的光束。,具体取决于这些类别中使用的半导体材料。LED 阵列由多个发光二极管 (LED) 组成,这些二极管以特定模式或配置排列,以实现均匀照明、更高强度或特定照明特性。如果数据的存在更改为“辐射强度”,则它以弧度为单位显示每个立体角的功率,作为探测器上入射角的函数。

jkh920184196的博客 1595

Android Bitmap 和 ByteArray的互相转换

Android Bitmap 和 ByteArray的互相转换 移动平台图像处理,需要将图像传给native处理,如何传递?将bitmap转换成一个 byte[] 方便传递也方便cpp代码直接处理图像内容。 Bitmap -&gt; byte[] 创建一个ByteBuffer用于接收数据。首先需要爲buffer开辟内存空间,内存空间的大小就是图片的大小。将bitmap的数据写入buffer,然后调...

weixin_34354945的博客 882

绕过ROS2!在RDK X5上直接用Python调用海康相机C++ SDK的避坑指南

本文详细介绍了在RDK X5上绕过ROS2,直接使用Python调用海康相机C++ SDK的轻量化方案。通过Cython构建Python绑定,提取海康相机SDK核心组件,实现高效图像采集。文章涵盖环境准备、Cython接口设计、编译系统配置及性能优化技巧,特别适合ARM64平台开发者。

weixin_33712987的博客 248

0基础学习diffusion_model扩散模型【易理解的公式推导】Denoising Diffusion Probabilistic Models

去噪扩散概率模型。本文是笔者在学习扩散模型时的一些笔记与心得,在公式推导过程中能够保证自己是一步一步去推导并且理解了的。概述是我认为比较重要的部分能够帮助理解公式的推导,具体的公式推导在每一小节中进行。1、扩散过程:如上图所示,扩散过程为从右到左X0→XTX0​→XT​的过程,表示对图片逐渐加噪,且Xt1X_{t+1}Xt1​是在XtX_{t}Xt​加躁得到的,其只受XtX_{t}Xt​的影响,因此扩散过程是一个马尔科夫过程。X0X_0。

zik的博客 2397

Android中Bitmap分割图片

网上搜了很多,都要使用Canvas,这个绝对是绕远了…… 经实验,图片裁切只要一句就可以 ,下面是我写的一个按正方形区域裁剪的方法 复制代码 /** * 按正方形裁切图片 */ public static Bitmap ImageCrop(Bitmap bitmap) { int w = bitmap.getWidth(); // 得到图片的宽,高 int h = bitmap.get

玩火猴子 2137

FPGA面试题目笔记(一)——FPGA开发流程、亚稳态和竞争冒险、建立保持时间、异步FIFO深度等

同步异步电路、同步异步复位、时钟偏移和抖动、最小工作周期计算、触发器锁存器

H19981118的博客 1万+

Android中将byte大小转换为KB、MB、GB等

代码示例。 Formatter.formatFileSize(Context context, long sizeBytes) 会根据传入的sizeBytes,自动将其转换为kb,mb,gb等单位。 例如:100 B,1.00 kB,1.00 MB,1.00 GB,10.00 TB,10.00 PB

猿小蔡的博客 3320

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Android性能优化:Bitmap详解&你的Bitmap占多大内存?

在开发app时,显示一张本地图片,这张图片在加载时会占用大多内存呢?猜测占用内存大小和以下几个因素有关: 设计师切图,图片本身的分辨率; 图片所放文件夹代表的 密度 dpi; 手机自身的屏幕密度; 经过系统缩放得到的最终加载到手机上图片的密度和占用的内存。 我们知道Android中在加载本地大图时,很容易OOM,主要原因在于加载的Bitmap占用内存太大。接下来将围绕以下几个问题说明如何计算一张Bitmap占用的内存大小。 将一张分辨率为 720x1080 的图片放到 xxhdpi 或者 hdpi

woyingle8866的博客 721

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Android---Bitmap详解

Bitmap开发中的几个常见问题:一张图片被加载成Bitmap后实际占用内存是多大;通过Options.inBitmap可以实现Bitmap的复用,但是有一定的限制;当界面需要展示多张图片,尤其是在列表视图中,可以考虑使用Bitmap缓存;如果需要展示的图片过大,可以考虑使用分片加载的策略。

qq_44950283的博客 1689

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

在Android 开发中如何获取一张Bitmap图片的大小(KB)?

压缩方式获取大小:适用于需要知道压缩后的文件大小,可以选择不同的压缩格式,如 PNG、JPEG。内存占用方式:用于获取Bitmap在内存中占用的实际字节数,而不是文件大小。文件方式:直接从文件中加载的图片可以使用文件大小。

LLZjiayou的博客 1374

Android之Bitmap深入理解 一

前言:        Bitmap是位图文件,它将图像定义为由点(像素)组成,每个点可以由多中色彩表示,包括2、4、8、16、24和32位色彩,例如一张1536*2048分辨率的32位真彩图片,其所占存储字节数为1536*248*(32/8)=12582912个字节,12582912/1024=12288kb,12288/1024=12MB。        上面说的可能有点抽象,先来看张图:我们演...

tangedegushi的博客 2260

android dp sp px_Android屏幕适配-重点盘点

享学课堂诚邀作者:周周转载请声明出处!引子屏幕适配是 android 开发/面试 绕不开的一个问题。本文 将屏幕适配的知识要点完整展现给各位读者。正文大纲android需要做屏幕适配的原因基础知识点(很重要)屏幕适配攻略正文android需要做屏幕适配的原因关键字:android碎片化android面世以来,google开源了android系统,各家厂商各自为政,导致屏幕尺寸没有统一标准,屏幕的宽...

weixin_39758712的博客 196

android byte转文件大小,android File 转成 byte[]

说明:android File 转成 byte[]代码:package briefer.tutu.utils;import java.io.Closeable;import java.io.File;import java.io.RandomAccessFile;/*** Created by zst on 2017/4/11.*/public class FileUtil {//file文件读取...

weixin_28979369的博客 1156

android 获取bitmap的大小,android获取图片尺寸的两种方式及bitmap的缩放操作

android获取图片尺寸的两种方式及bitmap的缩放操作发布时间:2020-10-02 15:19:30来源:脚本之家阅读:342作者:石博我就废话不多说了,大家还是直接看代码吧~//Uri.parse("file://"+result.getImage().getCompressPath()))String path=uri.getPath();Log.e("图片路径",path+"");S...

weixin_39806808的博客 3305

Bitmap计算大小方式

首先我们来了解一下四种存储模式 public static final Bitmap.Config ALPHA_8 public static final Bitmap.Config ARGB_4444 public static final Bitmap.Config ARGB_8888 public static final Bitmap.Config RGB_565 ARGB_8888、ARGB_4444、RGB_565、ALPHA_8 四种类型为bitmap在内存中存在的四种色彩的存储模式,他们本质

MirkoWug的博客 4181

JAVA与android 基本数据类型所占的字节数

在java 和 android代码编写时,时而会忘记一些基本的基础知识,收集下基本数据类型所占的字节数, Java的数据类型: 1. 整型 byte     1个字节 short   2个字节 int        4个字节 long    8个字节 2. 实型 float      4个字节 double 8个字节 3.字符型 char      2个字节 3.对象型

Jaguar的专栏 6366

byte[]获取实际长度的方法

一般我们的写法是 byte[] byteArray = new byte[128或者256或者1024],但是我们压根用不了这个多,在实际的操作中也比较麻烦,下面的方法可以获取当前的byteArray的有效长度和实际有多少个值./** * 获取byte的实际长度 * @param bytes * @return */public int getValidLength(byte[] byt...

键盘侠_HUT 3万+

Android bytes与KB、MB、GB单位转换

1.先定义三个整型常量 //定义GB的计算常量 private static final int GB = 1024 * 1024 *1024; //定义MB的计算常量 private static final int MB = 1024 * 1024; //定义KB的计算常量 private static final int KB = 1024; 2.实现转换 public static Str...

shiming_shi的博客 5186

字节换算(byte-to-bit)

字节是计算存储容量的存储单位。 单位名称 比特(bit) 字节(byte) 千字节(kb) 兆字节(mb) 千兆字节(gb) 拍字节(pb) 太字节(tb) 艾字节(eb) 换算单位 1 B/byte(字节) = 8 bit(比特) 1 KB(千字节) = 1024 B/byte(字节) 1 MB = 1024 KB 1 GB = 1024 MB 1TB ...

Android_tools的博客 1万+
上一篇: android 获得指定路径下可用存储大小
下一篇: Android Fragment---与Activity生命周期的协调
恶魔果实
博客等级 码龄15年 6粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值