展开

关键词

Android-图片的压缩(质量压缩和尺寸压缩)

复习一下图片的压缩知识,今天来做一个总结。 什么是质量压缩? 图片的质量压缩,会改变图片在磁盘中的大小(File文件的大小),不能改变图片在加载时,在内存中的大小。 image.png 由于我们这里只讲图片的压缩,关于再次之前如何获取图片返回的URI和高低版本适配7.0等问题,我们这里不说,我之前写过文章,Android-图片的选择,裁剪,压缩,适配高版本,这里就不说了 image.png 质量压缩 那我们就先看bitmapCompress()这个质量压缩的方法。 我们看一眼原图片和压缩目录(Pic)下有没有文件: 原文件: ? 压缩后的文件: ?

1.8K70

Android-图片压缩

由于Android本身的机制限定 由于系统对每个应用内存分配规则的限制,如果加载过大图片很有可能会导致OOM 即闪退或者卡屏现象 但是手机上拇指大小的图片,超清是王权没有必要的 这是我们就需要对 对片进行压缩处理 : 大多数人采用先生成bitmap对象,反复压缩bitmap至100k一下的方法,对图片进行反复压缩,但如果是超级大图,bitmap生成本身就已经会导致OOM,所以我们应先对bitmap进行设置: public ,这里100表示不压缩,把压缩后的数据存放到baos中 int options = 100; while ( baos.toByteArray().length / 1024 >100) { //循环判断如果压缩后图片是否大于100kb,大于继续压缩 baos.reset();//重置baos即清空baos image.compress (Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中 options -= 50;

13010
  • 广告
    关闭

    什么是世界上最好的编程语言?丨云托管征文活动

    代金券、腾讯视频VIP、QQ音乐VIP、QB、公仔等奖励等你来拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android Bitmap压缩方式分析

    Android Bitmap压缩方式分析 在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩);质量压缩一般可用于上传大图前的处理 ,这样就可以节省一定的流量,毕竟现在的手机拍照都能达到3M左右了,尺寸压缩一般可用于生成缩略图。 在Android开发中我们都会遇到在一个100*100的ImageView上显示一张过大的图片,如果直接把这张图片显示上去对我们应用没有一点好处反而存在OOM的危险,所以我们有必要采用一种有效压缩方式来显示上去 (lastBitmap); mImageView.setImageBitmap(lastBitmap); } 通过打印log我们可以清楚发现一张原始的图片占有22317120字节,经过压缩后 heigthRatio : widthRatio; 计算压缩比例,取最小值 这将保证压缩出来的图片大于或者等于请求的宽度或者高度。

    17420

    Android Bitmap优化(采样压缩

    Bitmap 的采样压缩(这个采样率是根据需求来进行生成的),使用到了inBitmap内存复用和 inJustDecodeBounds 采样的流程: 将 BitmapFactory.Options 的 /** * 采样率压缩,这个和矩阵来实现缩放有点类似,但是有一个原则是“大图小用用采样,小图大用用矩阵”。 * 也可以先用采样来压缩图片,这样内存小了,可是图的尺寸也小。 ,这里80表示80%不压缩压缩20%,把压缩后的数据存放到baos中 ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray ());//把压缩后的数据baos存放到ByteArrayInputStream中 BitmapFactory.Options options = new BitmapFactory.Options = null; System.gc(); } return compressBitmap; } /** * 采样压缩比例

    11420

    Android-图片压缩-2行搞定图片压缩【2019】

    图片压缩的方法有很多,这两天向同学学了一种方法,刚觉非常行之有效,与大家分享。 ---- 图片压缩的作用: 当我们上传图片到数据库时,如果是头像图片,那么在客户端显示出来一般是缩略图,这时大图是没有用的,又浪费加载时间 ---- 图片压缩的方法 /* 压缩路径下的文件 */ private } return pic; } ---- 使用解析 bitmap=Bitmap.createScaledBitmap(bitmap, 400, 400, false); 这段代码将图片大小压缩

    7010

    Android图片压缩的几种方案

    各位同学早上好,今天推荐的是Hensen同学的原创投稿文章,本文将为你介绍Android平台上几种压缩图片的方案。 效果演示 直接先给大家对比几种图片压缩的效果 质量压缩 质量压缩:根据传递进去的质量大小,采用系统自带的压缩算法,将图片压缩成JPEG格式 尺寸压缩 尺寸压缩:根据图片的缩放比例进行等比大小的缩小尺寸 ,从而达到压缩的效果 采样率压缩 采样率压缩:根据图片的采样率大小进行压缩 LibJpeg压缩 LibJpeg压缩:通过Ndk调用LibJpeg库进行压缩,保留原有的像素,清晰度高 编译LibJpeg 1、从Github上可以下载已经写好编译脚本的项目:https://github.com/Zelex/libjpeg-turbo-android ,并将其上传到Linux服务器的某个目录 2、授予整个目录权限 3、加载本地库和声明LibJpeg压缩方法 4、编写LibJpeg的本地文件 提取图片的ARGB通量的RGB通量 采用LibJpeg的API进行压缩 将数据写入到文件中 需要跑一下以上几种方案源码的同学

    64550

    Android 中图片压缩分析(上)

    作者: shawnzhao 一、前言 在 Android 中进行图片压缩是非常常见的开发场景,主要的压缩方法有两种:其一是质量压缩,其二是下采样压缩。 二、Android 质量压缩逻辑 在Android中,对图片进行质量压缩,通常我们的实现方式如下所示: ByteArrayOutputStream outputStream = new ByteArrayOutputStream 但是,现在 Android 手机性能比以前好很多,所以目前性能往往不是瓶颈,时间和压缩质量反而成为更重要的指标了。 _3327_1509956647814.jpg] 七、Android JPEG VS. iOS JPEG 经过上面的介绍大家应该了解了为什么 Android 的 JPEG 图片压缩率会比 iOS 小一些 ,那么还有另一个问题就是为什么同一张 PNG 图片设置成同样的压缩质量压缩成 JPEG 之后,Android 输出的图像质量会比 iOS 差一些呢,经过相关资料的查找,发现造成这个结果有两方面的因素。

    2.5K31

    Android中图片压缩分析(下)

    作者: shawnzhao 上篇我们详细介绍了图片质量压缩的相关内容和算法,接下来的下篇给大家介绍一下图片的尺寸压缩和常用的几种尺寸压缩算法。 一、Android 尺寸压缩逻辑 针对图片尺寸的修改其实就是一个图像重新采样的过程,放大图像称为上采样(upsamping),缩小图像称为下采样(downsampling),这里我们重点讨论下采样。 除了 Android 中这两种常用的重采样方法之外,还有另外比较常见的两种:双立方/双三次采样(Bicubic Resampling) 和 Lanczos Resampling。 二、邻近采样(Nearest Neighbour Resampling) Nearest Neighbour Resampling(邻近采样),是 Android 中常用的压缩方法之一,我们先来看看在 四、邻近采样和双线性采样对比 我们这里来对比一下这两种 Android 中经常用到的图片尺寸压缩方法。

    3.1K21

    Android图片压缩的实例详解

    Android图片压缩的实例详解 在做微信分享的时候,由于分享的缩略图要求不得大于32K,否则不能调起微信,所以总结了一下Android图片的压缩问题,大部分资料都是来自网上各位的分享,自己只是完善或修改了一下 android图片压缩主要有两种方式:1.压缩图片分辨率 2.压缩图片质量 一、先看压缩图片分辨率,很好理解,如本来1280*768的图片压缩为640*384大小。 heightRatio : widthRatio; } return inSampleSize; } 二、压缩图片的质量 /** * 压缩图片质量,把图片压缩到 这种压缩只是对图片质量有影响,并不会改变图片大小。 当然,如有需要,以上两种压缩方法可以结合使用。 以上就是Android 图片压缩的实现方法的详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    18231

    android bitmap压缩几种色彩详解

    android中的大图片一般都要经过压缩才显示,不然容易发生oom,一般我们压缩的时候都只关注其尺寸方面的大小,其实除了尺寸之外,影响一个图片占用空间的还有其色彩细节。 打开Android.graphics.Bitmap类里有一个内部类Bitmap.Config类,在Bitmap类里createBitmap(intwidth, int height, Bitmap.Config

    57250

    android界面背景键盘弹起被压缩

    键盘弹起时,若界面设置了背景图有被压缩的情况.如果界面的布局采用了ScrollView可以设置属性android:scrollbars=”horizontal”,或者在manifest文件中设置 android:windowSoftInputMode=”adjustPan|stateHidden” ,这样图片背景就不会被压缩变形,但是图片仍会被稍稍整体推上去的效果.

    61630

    android图片压缩工具类分享

    本文实例为大家分享了android图片压缩工具类的具体代码,供大家参考,具体内容如下 import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import android.content.Context ; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.BitmapFactory.Options ; import android.graphics.Matrix; import android.net.Uri; import android.widget.Toast; /** * 圆形图片工具类 ; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.os.Environment

    27810

    Android基础操作-文件解压缩

    文件操作是Android中经常遇到的问题,比如复制/删除, 最近会贡献一些平时开发中积累下来的工具类,希望能免去大家造轮子的体力活。 今天贡献一个解压缩zip文件的工具。 关键类 可以归纳起来所有跟文件操作相关的流程都要下面这几个类 File InputStream OutputStream 解压缩也一样,用于解压缩的工具类是这三个, ZipFile ZipInputStream FileOutputStream 解压缩流程 首先实例化ZipFile对象, 通过InputStream读取流,ZipInputStream提供了一个方法 getNextEntry() 返回一个 ZipEntry 这个对象所表示的意义是压缩/解压的文件信息,可以是文件夹,也可以是文件。 所以在获取ZipEntry的之后,如果用 getName()拿它的文件名的话, 会以路径+文件名的形式呈现。 比方我们现在有压缩文件 test.zip, 源文件 test/ 下面存在这么个层级结构, test/a/b/c/file.txt 那么在解压缩的时候,我们拿到的file.txt的 ZipEntry的 name

    99040

    Android视频压缩的示例代码

    最近由于项目需求,需要对自己录制的视频进行压缩并发送。本篇主要说的是视频的压缩,所以关于视频的录制和上传、发送就不在这里做过多表述了。 -ar 44100 -ac 2 -b:a 96k -s 640×352 -aspect 16:9 压缩后的目录”; InitListener是对压缩过程的一个监听,onExecSuccess表示压缩成功 ,onExecFail表示压缩失败,一般失败的原因都是你自己地址出错,所以要细心点。 onExecProgress压缩的进度。 关于这个工具知道这么多就够了,关键在于自己动手试试。 下载地址:Android-Video-Compressor_jb51.rar 以上就是本文的全部内容,希望对大家的学习有所帮助。

    85131

    Android 动态库压缩壳的实现

    作者介绍:周科,腾讯工程师,QQ动漫Android主力开发,从事过Rom开发,参与过手Q阅读、手Q趣味来电等项目,对Android底层原理有深入理解。 壳主要分为两大类:加密壳和压缩壳,加密壳侧重于防止软件被篡改,而压缩壳则侧重于减小软件体积。其实,在Windows上已经有许多壳了,但Android(或者可以说Linux)上的壳相对而言就少了一些。 本文就主要讲讲Android动态库(so文件)压缩壳要如何实现。 一、压缩 说到压缩,我们可能首先会想到一些常用的压缩工具,例如7-zip、WinRAR、tar等等。 综上,一个so的压缩过程就可以用一个简单流程图来描述。 二、加载 Android中so的加载全靠Linker,所以要理解so的加载过程,需要对Linker有一定的了解。 四、参考 Lzma SDK 压缩算法对比 ELF文件格式总结 Android Linker学习笔记 文章来源公众号 小时光茶社(Tech Teahouse)

    3.2K10

    详解Android Bitmap的常用压缩方式

    一、前言 已经好久没有更新博客,大概有半年了,主要是博主这段时间忙于找工作,Android岗位的工作真的是越来越难找,好不容易在广州找到一家,主要做海外产品,公司研发实力也不错,所以就敲定了三方协议。 现在已经在公司实习了一个月多,目前主要是负责公司某个产品的内存优化,刚好就总结了一下Android Bitmap常用的优化方式。 Android中的图片是以Bitmap方式存在的,绘制的时候也是Bitmap,直接影响到app运行时的内存,在Android,Bitmap所占用的内存计算公式是:图片长度 x 图片宽度 x像素点的字节数 我们可以看到有个参数:quality,可以调节你压缩的比例,但是还要注意一点就是,质量压缩堆png格式这种图片没有作用,因为png是无损压缩。 五、总结 以上5种就是我们常用的压缩方法了,这里的压缩也只是针对在运行加载的bitmap占用内存的大小。

    23410

    Android apk中so库文件未压缩

    背景: 升级AS 3.6.1, 并且升级project build.gradle AGP 到3.6.1, 一个项目发现打包后文件骤然增大, 查看apk包,发现apk 包中so库文件未被压缩. 但是一个类似项目,相同版本却没有问题 升级前 升级后 升级后Raw File Size 正好是未压缩的大小 可能原因 不同版本AGP gradle build task 实现不一样, 再某情况下回不进行 so 库压缩处理 解决方案 AGP 降级到3.5.3 , AS 不用降级 参考 关于*.SO压缩问题 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/148250.html

    1010

    Android图片实现压缩处理的实例代码

    整理文档,搜刮出一个Android图片实现压缩处理的实例代码,稍微整理精简一下做下分享。 dstHeight, boolean filter)Creates a new bitmap, scaled from an existing bitmap, whenpossible. 3.获取图片方向调整、失量压缩图片保持在 1024kb以下 //进行大小缩放来达到压缩的目的 BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds ,把压缩后的数据存放到baos中 (100表示不压缩,0表示压缩到最小) int baosLength = baos.toByteArray().length; while (baosLength / 1024 maxFileSize) {//循环判断如果压缩后图片是否大于maxMemmorrySize,大于继续压缩 baos.reset();//重置baos即让下一次的写入覆盖之前的内容 options

    24631

    Android开发之图片压缩实现方法分析

    本文实例讲述了Android开发之图片压缩实现方法。 这是我们就需要对 对片进行压缩处理: 大多数人采用先生成bitmap对象,反复压缩bitmap至100k一下的方法,对图片进行反复压缩,但如果是超级大图,bitmap生成本身就已经会导致OOM,所以我们应先对 ,这里100表示不压缩,把压缩后的数据存放到baos中 int options = 100; while ( baos.toByteArray().length / 1024 100) 更多关于Android相关内容感兴趣的读者可查看本站专题:《Android图形与图像处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android 基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》 希望本文所述对大家Android程序设计有所帮助。

    30920

    相关产品

    • 图片处理

      图片处理

      图片处理(IP)是由腾讯云数据万象提供的功能丰富、低成本、高可靠的图片处理服务。图片处理支持灵活的图像编辑,并且提供 Guetzli 压缩、TPG 转码等图片瘦身解决方案,图片或文字水印、独有盲水印等版权保护解决方案,满足多种业务场景下的图片需求。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券