Android图片压缩的几种方案

各位同学早上好,今天推荐的是Hensen同学的原创投稿文章,本文将为你介绍Android平台上几种压缩图片的方案。

效果演示

直接先给大家对比几种图片压缩的效果

质量压缩

质量压缩:根据传递进去的质量大小,采用系统自带的压缩算法,将图片压缩成JPEG格式

尺寸压缩

尺寸压缩:根据图片的缩放比例进行等比大小的缩小尺寸,从而达到压缩的效果

采样率压缩

采样率压缩:根据图片的采样率大小进行压缩

LibJpeg压缩

LibJpeg压缩:通过Ndk调用LibJpeg库进行压缩,保留原有的像素,清晰度高

编译LibJpeg

1、从Github上可以下载已经写好编译脚本的项目:https://github.com/Zelex/libjpeg-turbo-android ,并将其上传到Linux服务器的某个目录

2、授予整个目录权限

3、进入libjpeg目录,使用下面指令进行编译,前提是你的服务器已经搭建了ndk-build和配置了环境变量

4、接着编译成功后,会在 obj/local 目录下生成我们需要的 libjpeg.a

创建工程

1、创建一个新的项目,勾选包含C++,勾选C++11和C++的依赖库

2、将生成的 libjpeg.a和头文件导入到我们的项目中

3、配置gradle

4、配置CMake

5、声明权限

使用LibJpeg

1、启动选择文件的Intent

2、对返回的结果进行压缩

3、加载本地库和声明LibJpeg压缩方法

4、编写LibJpeg的本地文件

提取图片的ARGB通量的RGB通量

采用LibJpeg的API进行压缩

将数据写入到文件中

需要跑一下以上几种方案源码的同学,可以访问:https://github.com/AndroidHensen/BitmapCompress获取。

本文来自企鹅号 - Android程序员媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Fred Liang

Service Worker 实现 web 应用消息推送

Service Worker 是事件驱动的 worker,生命周期与页面无关,关联页面未关闭时,它也可以退出,没有关联页面时,它也可以启动.

73520
来自专栏从零开始学 Web 前端

基于Github&Hexo的个人博客搭建过程

在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目。现在就让我们一起进入 Web 前端学习的冒险之旅吧!

31930
来自专栏北京马哥教育

关于IO的同步,异步,阻塞,非阻塞

上次写了一篇文章:Unix IO 模型学习。恰巧在这次周会的时候,@fp1203 (goldendoc成员之一) 正好在讲解poll和epoll的底层实现。中途...

318100
来自专栏性能与架构

查看操作系统负载

当我们系统有问题的时候,不要急于去调查我们代码 首先要看的是操作系统的报告,看看操作系统的CPU利用率,看看内存使用率,看看操作系统的IO,还有网络的IO,网络...

36960
来自专栏GreenLeaves

正向代理、负载均衡、反向代理

假设我们需要使用自己的笔记本(A)访问国外的站点(B),由于网络限制,我们无法访问国外的站点.但是此时我们有一台服务器(C)跳出了网络限制可以访问国外站点,那么...

18750
来自专栏云成本管理

云成本管理方法论(三)——云优化管理之判定规则

云优化管理四个管理维度中管理时点在通用管理模型基础上不需要额外补充,所以主要说明其他三个维度(管理对象、判定规则和管理措施)。另外,为了贴近我们熟悉的优化概念,...

534200
来自专栏北京马哥教育

30分钟zabbix入门——最简单有效的zabbix快速学习法

在公司搭建系统级别的监控,由于ELK对流量监控存在局限——现有的工具只记录了累计的流量,而无法计算每时每刻的流量。所以决定最后用zabbix来对网络做监控和报...

604120
来自专栏埋名

专门为Github党打造的超级无敌Chrome插件

作为GitHub党,分享一些好用的Chrome插件,帮助增强Github功能。标题名称在Chrome插件商场搜索,即可安装对应的插件。

79330
来自专栏云计算教程系列

如何在Debian 8上使用X2Go设置远程桌面

为了提高效率,安全性以及从命令行执行所有操作的能力,许多服务器不使用图形用户界面(GUI)。但是,有时您需要在远程服务器上运行GUI应用程序,例如在浏览器中测试...

28720
来自专栏京东技术

Web自动化测试 | 充分利用浏览器记录的信息

一切和效率提升,质量提高相关的工具/脚本都隶属于自动化的测试范围,所以这里要介绍的不是单纯的UI自动化和接口测试脚本。

45620

扫码关注云+社区

领取腾讯云代金券