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

如何在不改变宽度和高度的情况下压缩android位图

在不改变宽度和高度的情况下压缩Android位图,可以通过以下步骤实现:

  1. 使用BitmapFactory类的decodeResource()或decodeFile()方法将位图加载到内存中。
  2. 获取位图的原始宽度和高度,可以使用位图对象的getWidth()和getHeight()方法。
  3. 计算位图的原始像素数,即原始宽度乘以原始高度。
  4. 根据需要压缩的比例,计算出新的目标像素数。例如,如果需要将位图压缩到原始像素数的一半,目标像素数为原始像素数的一半。
  5. 使用Bitmap类的createScaledBitmap()方法将位图按照目标像素数进行压缩。该方法接受目标位图的宽度、高度和压缩选项作为参数。
  6. 将压缩后的位图保存到文件或显示在UI上,具体根据需求进行处理。

压缩Android位图的优势是可以减小位图文件的大小,从而减少网络传输和存储空间的消耗。同时,压缩后的位图在显示时可以减少内存的占用,提高应用程序的性能和响应速度。

应用场景包括但不限于:

  1. 图片上传:在上传用户头像、图片等场景中,压缩位图可以减小文件大小,提高上传速度。
  2. 图片展示:在应用程序中展示大量图片时,压缩位图可以减少内存占用,提高应用的流畅度和响应速度。
  3. 缩略图生成:在生成缩略图时,压缩位图可以减小文件大小,节省存储空间。

腾讯云提供了一系列与图片处理相关的产品和服务,包括:

  1. 云图片处理(COS):提供了丰富的图片处理功能,包括缩放、裁剪、旋转、水印等,可以方便地对图片进行压缩和处理。详情请参考:云图片处理(COS)
  2. 云剪裁(COS):提供了智能裁剪、智能缩放等功能,可以根据需求自动裁剪和缩放图片,减少人工干预。详情请参考:云剪裁(COS)

以上是关于如何在不改变宽度和高度的情况下压缩Android位图的答案,希望能对您有所帮助。

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

相关·内容

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

[在这里插入图片描述] 前言 Android官网中处理位图 [高效加载大型位图 ](https://developer.android.com/topic/performance/graphics/...否则,Android 系统必须缩放位图,使其在每个屏幕上占据相同可见空间,从而导致缩放失真,模糊。...前者是降低图像尺寸,改变图片存储体积; 后者则是在不改变图片尺寸情况下,通过损失颜色精度,达到相同目的; 压缩Bitmap磁盘占用空间大小 //如果成功地把压缩数据写入输出流,则返回true。...下面的方法用于计算样本大小值,即基于目标宽度高度 2 幂: public static int calculateInSampleSize( BitmapFactory.Options...不同采样算法会产生不同效果,除了 Android 中这两种常用采样算法之外,还有比较常见:双立方/双三次采样(Bicubic Resampling) Lanczos Resampling 等。

2.6K00

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

在这里插入图片描述 前言 Android官网中处理位图 高效加载大型位图 这两篇文章中已经做了很明确指出了如何高效加载大图。...否则,Android 系统必须缩放位图,使其在每个屏幕上占据相同可见空间,从而导致缩放失真,模糊。 ?...前者是降低图像尺寸,改变图片存储体积; 后者则是在不改变图片尺寸情况下,通过损失颜色精度,达到相同目的; 压缩Bitmap磁盘占用空间大小 //如果成功地把压缩数据写入输出流,则返回true。...下面的方法用于计算样本大小值,即基于目标宽度高度 2 幂: public static int calculateInSampleSize( BitmapFactory.Options...不同采样算法会产生不同效果,除了 Android 中这两种常用采样算法之外,还有比较常见:双立方/双三次采样(Bicubic Resampling) Lanczos Resampling 等。

1.9K20

bitmap六种压缩方式,图片压缩

,可以从0–100改变,这里出来log是: 可以看到,图片大小是没有,因为质量压缩不会减少图片像素,它是在保持像素前提下改变图片位深及透明度等,来达到压缩图片目的,这也是为什么该方法叫质量压缩方法...Bitmap内存分配,但是它可以返回Bitmap宽度高度以及MimeType。...()); 出来log是 我们看到图片大小直接缩小了一半,长度宽度也没有,相比argb_8888减少了一半内存。...); 出来log是 这里是将图片压缩成用户所期望长度宽度,但是这里要说,如果用户期望长度宽度原图长度宽度相差太多的话,图片会很不清晰。...android手机中,图片所占内存大小很多因素相关,计算起来也很麻烦。

2.6K20

Android开发基础系列】图片专题

,可以从0–100改变,这里出来log是:         可以看到,图片大小是没有,因为质量压缩不会减少图片像素,它是在保持像素前提下改变图片位深及透明度等,来达到压缩图片目的,这也是为什么该方法叫质量压缩方法...Bitmap内存分配,但是它可以返回Bitmap宽度高度以及MimeType。...());         出来log是:         我们看到图片大小直接缩小了一半,长度宽度也没有,相比argb_8888减少了一半内存。         ...这里是将图片压缩成用户所期望长度宽度,但是这里要说,如果用户期望长度宽度原图长度宽度相差太多的话,图片会很不清晰。         ...如果将这些压缩bitmap另存为sd中,他们内存大小并不一样。         android手机中,图片所占内存大小很多因素相关,计算起来也很麻烦。

15220

Android中文API——Bitmap

public static Bitmap createBitmap (int width, int height, Bitmap.Config config) 返回一个指定高度宽度不可改变位图。...height, Bitmap.Config config) 返回一个指定宽度高度不可变位图,该位图每个像素值等于颜色数组中对应值。...public static Bitmap createBitmap (int[] colors, int width, int height, Bitmap.Config config) 返回一个宽度高度被指定不可改变位图...它初始像素密度由getDensity()决定。 参数 colors 用来初始化像素值得颜色数组。该数组必须至少宽度*高度一样大。  ...public void recycle () 释放位图相关本地对象,且清除对像素数据引用。该方法不会同步释放像素数据。它仅仅允许在没有其它引用情况下被系统垃圾回收。

1.2K30

Android整理好图片压缩工具类

Media内容提供者中Image对图片进行操作; 2.手动压缩: (1)根据图片屏幕尺寸,等比压缩,完美显示; (2)降低图片质量,压缩图片大小; 以下是自己整理小工具类(对于按比例缩放后,在此并未再进行质量缩放...{ /** * 通过降低图片质量来压缩图片 * @param bmp * 要压缩图片位图对象 * @param maxSize * 压缩后图片大小最大值,单位KB...、高度; int imgWidth = opts.outWidth; int imgHeight = opts.outHeight; // 分别计算图片宽度高度与目标宽度高度比例;取大于该比例最小整数...,通过读入流方式,可以有效防止网络图片数据流形成位图对象时内存过大问题; * @param InputStream 要压缩图片,以流形式传入 * @param targetWidth 缩放目标宽度...、高度; int imgWidth = opts.outWidth; int imgHeight = opts.outHeight; // 分别计算图片宽度高度与目标宽度高度比例;取大于该比例最小整数

1.8K20

AndroidBitmap详细介绍

位图是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、2432位色彩。...是个泛型类,内部采用LinkedHashMap来实现缓存机制,它提供get方法put方法来获取缓存添加缓存,其最重要方法trimToSize是用来移除最少使用缓存使用最久缓存,并添加最新缓存到队列中...Bitmap内存分配, 但是它可以返回Bitmap宽度高度以及MimeType。..., 效果方法2一样 Android中使用Matrix对图像进行缩放、旋转、平移、斜切等变换。...); 参数说明: src用来构建子集位图 dstWidth 新位图期望宽度 dstHeight 新位图期望高度 filter 为true则选择抗锯齿 补充抗锯齿知识点 在Android中,目前

2.2K10

TRTC案例:截图体积与清晰度

像素数量即图片长宽尺寸;1080x2130 2. 图片格式,主要是格式对应压缩算法;JPEG 3. 位深色深、通道数量 4....尺寸: 像素数量这个就是字面意思,图片高度乘以图片宽度即可。 2. 位深 在某一分辨率下,每一个像素点可以有多少种色彩来描述,单位为“bit”(位)。...照片大小= 整张照片像素总数*每个像素点上颜色编码大小 (无压缩位图,BMP等格式都属于这种格式) 在不压缩情况下,图片占用空间大小: 照片大小= 整张照片像素总数*每个像素点上颜色编码大小...(无压缩位图) bmp位图计算方式如下 大小=高度*宽度*位深/8/1024/1024 (MB) 客户图1是未经压缩位图: 1080*2130*32/8/1024/1024 = 8.77MB 客户图...在这种情况下,它要么表示透明要么不是,因为alpha bit只有0或1两种不同表示可能性。又如一个使用32个bit存储位图,每8个bit表示红绿蓝,alpha通道。

2.5K10

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

* 为不同屏幕密度提供不同位图绘图* 默认情况下Android调整你位图绘图(.png, .jpg, and .gif 文件)9补丁绘图(.9.png 文件),让他们在每个设备上以适当物理尺寸呈现...为了把提供两种不同屏布局变成可能,Android现在允许你基于宽度与/或者高度指定布局资源,在dp单位中指定,这对于应用程序布局很有效。...相反,在dp单位中宽度高度尺寸对你activity窗口是可用Android系统可能会使用一些屏幕做系统UI(屏幕底部系统栏或顶部状态栏),所以一些屏幕有可能对于你布局是不可用。...使用表2中这些尺寸限定符,应用程序可以在使用任何想要宽度高度平板手机不同布局资源间切换。...对于其他情况,你要进一步自定义你UI以区分7寸10寸平板尺寸,可以定义额外最小宽度布局: res/layout/main_activity.xml # 适用于手机 (小于600dp可用宽度)

2.6K60

Android 内存优化】图片文件压缩 ( Android 原生 API 提供图片压缩功能能 | 图片质量压缩 | 图片尺寸压缩 )

文章目录 一、 图片压缩 二、 图片文件压缩类型 三、 Android 原生 API 提供质量压缩 四、 Android 原生 API 提供尺寸压缩 一、 图片压缩 ---- 图片压缩 : ① 文件压缩...) 通道信息 , 推荐使用 JPEG ; webp 目前使用还不是很广泛 ; 三、 Android 原生 API 提供质量压缩 ---- 图片质量压缩函数原型 : 下面的函数原型中给出了详细注释...原生 API 提供尺寸压缩 ---- 图片尺寸压缩函数原型 : 下面的函数原型中给出了详细注释 ; ① 函数作用 : 创建一个新 Bitmap 对象 , 缩放一张已存在位图 ; 如果指定宽高与当前源位图宽高一致..., 那么直接将源位图返回 ; ② 参数解析 : Bitmap src 参数 : 位图原图 ; int dstWidth 参数 : 图片转换后目标宽度 ; int dstHeight 参数 : 图片转换后目标高度...* 如果指定宽高与当前源位图宽高一致 , 那么直接将源位图返回 * * @param src 位图原图 * @param dstWidth 图片转换后目标宽度

4.3K20

Android自定义View实现颜色选取器

宽度大于高度(这是一般情况,在控件方向为水平,宽度小于高度情况下,边界要进行特殊计算;控件方向为竖直,宽度大于高度情况也需要特殊处理),取高度作为基数(取宽高中短一边作为基数)进行平均分配,...份,两份留白,这是高度分配情况;颜色条宽度满足如下条件:在可用宽度基础上,左右分别留出指示点半径宽度,这是为了在指示点滑动到左右端点时留出空间给指示点显示,同时保证指示点圆心能完整扫过整个颜色条...竖直方向测量计算逻辑也是一样。 特殊情况: 有两种情况需要特殊处理 1. 控件为水平方向,此时控件可用宽度小于可用高度。 2. 控件为竖直方向,此时控件可用宽度大于可用高度。...不足: 假设控件为水平方向,此时控件可用宽度大于可用高度,但宽与高差值很小。这种情况下,指示点仍然有可能大部分遮挡甚至完全遮挡住颜色条,这种情况下并没有进行处理,此时只能由使用者进行控制。...2.3 onDraw onDraw 方法负责绘制,绘制时判断指示点对应位图颜色条对应位图是否需要重绘,需要则重绘,后绘制两张位图到控件上,否则直接绘制两张位图到控件。

1.4K30

android学习笔记----关于图形基本处理讲解

,jpg把bmp格式图片进行压缩,相邻位图差不多就合并了,而png也是将bmp格式图片压缩压缩算法jpg不一样,并且更高级。...样本大小是任一维度中与解码位图单个像素相对应像素数。例如,inSampleSize == 4返回图像是原始宽度/高度1/4,像素数量1/16。...设备分辨率越来越高,屏幕上具有的像素数量比这里显示还要多,但是我们暂时先讨论这五大类: 密度独立像素来表示宽度高度值,也就是说我们可以规定按钮尺寸为 48 x 48 dip,实际上 Android...作为开发者,你应该用 dp 值来声明图片宽度高度,例如 48dp x 48dp。然后 Android 会确保所有这些图片在各种不同设备上大概保持相同尺寸,无论是每英寸像素数量是多少。...dppx之间关系:1dp是屏幕密度为160dpi时1px,也就是说在密度值为160dpi情况下,1dp=1px。

58620

为你重新系统梳理下, Web 体验优化中和图有关那些事(万字长文)

位图根据位深度,有 1、4、8、16、24、32 位图像等。位图放大会失真模糊。 矢量图:计算机图形学中用点、直线或者多边形等基于数学方程几何图元表示图像。...SVG 优点是文件可读,易于修改编辑。支持多种滤镜特殊效果,在不改变图像内容前提下可以实现位图中类似文字阴影效果,还可以生成动态图形。...与不变 一些不变部分,第三方库代码,可以考虑业务代码分离,这样一来可以减少下载资源大小 最佳缓存周期 不同资源可能有不同更新要求,设置合适 max-age Etag 当服务器上资源未发生变动时不需要请求...示例:将图强制缩略成宽度为 100,高度为 100。 http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?...img-directions-for-use) 示例:将图强制缩略成宽度为 100,高度为 100。

1.3K20

详解Android Bitmap常用压缩方式

Android图片是以Bitmap方式存在,绘制时候也是Bitmap,直接影响到app运行时内存,在Android,Bitmap所占用内存计算公式是:图片长度 x 图片宽度 x像素点字节数...RGB_565 :表示16位RGB位图,即R=5,G=6,B=5,它没有透明度,一个像素点占5+6+5=16位,2个字节 我们在做压缩处理时候,可以先通过改变Bitmap图片格式,来达到压缩效果,...,它是在保持像素前提下改变图片位深及透明度,来达到压缩图片目的,图片长,宽,像素都不会改变,那么bitmap所占内存大小是不会。...,也是通过缩放图片尺寸,来达到压缩图片效果,采样率原理一样。...我们在做App内存优化时候,一般可以从这两个方面入手,一个内存泄漏,另外一个是Bitmap压缩了,在要求像素不高情况下,可以对Bitmap进行压缩,并且针对一些只使用一次bitmap,要做好recycle

96610

浅谈 Web 图像优化

常规图像格式分为矢量图位图。 原理: 矢量图形使用线、点多边形来表示图像。 光栅图形,也可以成为位图,通过对矩形格栅内每个像素值进行编码表示图像。...这时候我们就需要位图位图格式有很多: GIF PNG JPEG JPEG-XR WebP Bpg 其中 Webp 是比较流行图像格式方案,目前移动端 Android 4.0 以上、PC 端 chrome...另外如果考虑到更全兼容性问题,还是得回归到 jpg png 上,常规选择会用 jpg 作为背景图,png 作为小块图片,当然都需要经过压缩,服务端可以使用 Gzip ,上传图片前还能使用工具进行一遍压缩...压缩可分为有损压缩无损压缩。 使用有损压缩处理图像,是去除某些像素数据。 使用无损压缩处理图像,是对像素数据进行压缩压缩方案可以根据需求选择。...块中有另外一个块会先设置一个 padding-bottom 来撑起块高(即保证需要加载图像也是这个宽度高度比例)。这样防止图片在加载时发生重排。 加载一个轻量版图片。

1.4K90

Android 内存优化】Android 工程中使用 libjpeg-turbo 压缩图片 ( JNI 传递 Bitmap | 获取位图信息 | 获取图像数据 | 图像数据过滤 | 释放资源 )

函数库头文件拷贝 | 构建脚本配置 | Android Studio 测试函数库 ) 中 对 libjpeg-turbo 函数库进行了交叉编译 , 拷贝了相应头文件和静态库到 Android Studio...Bitmap 信息 : 在 AndroidBitmapInfo 结构体中 , 封装了图像宽度 , 图像高度 , 像素格式等信息 ; /** Bitmap info, see AndroidBitmap_getInfo...(). */ typedef struct { /** 图像像素宽度. */ uint32_t width; /** 图像像素高度. */ uint32_t...释放压缩数据 : 释放掉存储要压缩 JPEG 图片 RGB 数据内存 , 此时已经压完毕 , 可以将之前申请内存都释放掉了 ; 注意之前申请 data 指针 , 在拷贝数据过程中 , 将该指针移动过了...// 这里需要去掉透明度信息 // 获取图片像素宽度 int width = info.width; // 获取图片像素高度 int height = info.height

92520

CImage 类

CImage::Draw 将位图从源矩形复制到目标矩形。 Draw 拉伸或压缩位图以适应目标矩形尺寸(如有必要)并处理 alpha 混合透明颜色。...对于 monochrome 位图或掩码,可以是 1。 eCompression 指定压缩自下向上位图压缩类型 (不能压缩自顶向下 DIB) 。...BI_BITFIELDS 格式未压缩,颜色表包含三个颜色掩码,分别指定每个像素红色、绿色 DWORD 蓝色分量。 与 16 32-bpp 位图一同使用时,这一点有效。...xDest 目标矩形左上角 x 坐标(以逻辑单位为单位)。 yDest 目标矩形左上角 y 坐标(以逻辑单位为单位)。 nDestWidth 目标矩形位图宽度(以逻辑单位为单位)。...nDestHeight 目标矩形位图高度(以逻辑单位为单位)。 xSrc 源位图左上角逻辑 x 坐标。 ySrc 源位图左上角逻辑 y 坐标。

3.2K40

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

质量压缩 采样率压缩 缩放压缩 减少图片像素,缩略图 JNI调用JPEG库 Android目前常用图片格式有png,jpegwebp, png:无损压缩图片格式,支持Alpha...通道,Android切图素材多采用此格式 jpeg:有损压缩图片格式,不支持背景透明,适用于照片等色彩丰富大图压缩,不适合logo webp:是一种同时提供了有损压缩无损压缩图片格式...在Android4.0(API 14)之后支持,无损透明在Android4.3(API18)之后支持 采用webp能够在保持图片清晰度情况下,可以有效减小图片所占有的磁盘空间大小...Android中Bitmap所占内存大小计算方式:图片长度 x 图片宽度 x 一个像素点占用字节数 3、压缩常见方式 质量压缩:降低存储体积(不改变内存中Bitmap大小) 采样压缩...+bitmap.getByteCount() +"\n宽度》"+bitmap.getWidth() +"\n高度》"+bitmap.getHeight()

88820
领券