转-android图片降低图片大小保持图片清晰的方法
http://i.cnblogs.com/EditPosts.aspx?opt=1
android里面对于图片的处理一直是个比较烦人的问题,烦人之处在于一个不小心,就有可能造成OOM。
最近碰到一个关于图片上传的问题,图片上传我们肯定要保证2点,一点是图片的大小尽可能的小,
但是图片的清晰度又要有一定的保证,基于此我们有两个方向,一个是将图片缩小,第二个是将图片的质量降低。
对于缩小图片,我们的方法不少,可以裁剪,可以缩放;
而另一种降低图片的方法就是降低质量,使用这个方法后图片就会变得模糊,如果我们降低质量太多,会发现我们的图片都变成了很大的像素点,有过图像分析的都知道,我们的图片是由一个个像素点表示的,降低质量是通过一定的算法来的,有些可以直接使用将一个“田”的四个像素,按照我们的约定用一个值来代替,这样会将原来有区分的四个像素点变为一个没有区分的像素点,当我们降低图片的质量在肉眼不可分辨的阶段的时候,其实我们是看不出来图片的质量有什么直接的变化,但是一旦超过了我们肉眼能够识别的区域,我们就会有很直观的变化。
上面两个方法也是现在网络上流传比较多的两个方法,但是有些时候我们发现使用那两个方法其实还是达不到我们的要求,在网上找了一些方法,我觉得还不错,其中在我的一个项目中使用到了其中的一个方法。
1. 不使用jpg格式的图片,使用其他格式的图片,我看了看,发现了webp这个格式有很大的优点,
其一是这个格式的图片在保持和jpg相同信息的大小的情况下,其大小比jpg小39%(网上人家说的,具体的大小你们可以看看权威文献,我这里只是想表达大小减小了很多),看了一篇文章,说的QQ里面的表情就是使用的这个格式的图片,不过这个图片的解析比解析jpg慢大约10倍的时间(无论怎么慢可定也是不会很慢的,网上人家测试的结果我记的不是很清楚了100ms左右吧)。
在android 4.0之前官方的API里面是没有相关的方法提供的,但是4.0之后,api里面提供了相关的方法。
请参考这里的文章,写的很好:http://www.uisdc.com/image-format-webp-introduction
2. 使用so文件来压缩jpg,看过一篇文章,人家讲了微信里面为什么android版的图片和ios版的图片清晰度为什么差别那么多,人家的团队摸索了很久,好像说是android和ios都是使用了同一个包来对图片进行压缩,但是里面里面有个参数在android里面默认的是false,但是ios好像对这个参数的处理比较好点,这样ios表现的清晰度就比android更加清晰,找不到原文了,不知道这个是不是原文,还是附上一个连接地址:http://www.geekfan.net/11651/
第2中方法是我们项目中现在使用到的方法,会用到NDK编译,不过里面已经提供了相关的so库,如果不想编译,直接拷出来用就好了,本来想直接改为公司包名的,但是有些头文件就是没找到。。。没改成,自己C语言的基础还是差了点,以后继续学习。
转-android图片降低图片大小保持图片清晰的方法的更多相关文章
- pyqt5:图片自适应QLabel大小和图片移除
参考链接: https://www.e-learn.cn/content/qita/669569 图片自适应QLabel大小 # coding=utf- import sys from PyQt5.Q ...
- JS控制图片显示的大小(图片等比例缩放)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【JS控制图片显示的大小(图片等比例缩放)】
效果: 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- Android中的Glide加载图片
注意:在Android Studio的项目的build.gradle中添加: compile 'com.github.bumptech.glide:glide:3.6.1' 然后同步一下 目录: 使用 ...
- Android之本地相冊图片选取和拍照以及图片剪辑
转载请注明出处:http://blog.csdn.net/loveyaozu/article/details/51160482 相信有非常多Android开发者在日常开发中,因为项目需求,须要我们的A ...
- Android高效内存2:让图片占用尽可能少的内存
Android高效内存:让图片占用尽可能少的内存 一.让你的图片最小化 1.1 大图小图内存使用情况对比 大图:440 * 336 小图:220 * 168 资源目录:xhdpi 小图的高宽都是 ...
- Android压缩图片到100K以下并保持不失真的高效方法
前言:目前一般手机的相机都能达到800万像素,像我的Galaxy Nexus才500万像素,拍摄的照片也有1.5M左右.这么大的照片上传到服务器,不仅浪费流量,同时还浪费时间. 在开发Android企 ...
- 62.Android之各分辨率定义的图片规格
转载:http://www.nljb.net/default/Android%E4%B9%8B%E5%90%84%E5%88%86%E8%BE%A8%E7%8E%87%E5%AE%9A%E4%B9%8 ...
- Android webview实现上传图片的效果(图片压缩)
mainactivity代码 package com.bwie.webviewupload; import java.io.ByteArrayInputStream; import java.io.B ...
随机推荐
- 最大子段和问题,最大子矩阵和问题,最大m子段和问题
1.最大子段和问题 问题定义:对于给定序列a1,a2,a3……an,寻找它的某个连续子段,使得其和最大.如( -2,11,-4,13,-5,-2 )最大子段是{ 11,-4,13 }其和为2 ...
- /bin/rm: Argument list too long解決方法
rm.cp.mv是unix下面常用到的檔案處理指令,當我們需要刪除大量的log檔案,如果檔案數太多就會出現此訊息[/bin/rm: Argument list too long]解決方式如下: 例如要 ...
- curl网站开发指南
我一向以为,curl只是一个编程用的函数库. 最近才发现,这个命令本身,就是一个无比有用的网站开发工具,请看我整理的它的用法. =================================== ...
- Mydumper & Myloader Documentation
Mydumper.org web site has been missing in action for a while now. I've uploaded a copy of the Mydump ...
- jQuery UI 对话框(Dialog) - 模态表单
<!doctype html><html lang="en"><head> <meta charset="utf-8" ...
- Axure折叠与展开效果的实现
http://www.masterchat.cn/article/20120501/217.html 视频教程 项目效果 点击表头,内容会展开或者收缩. 第一步,用矩形工具分别建立如下效果的图形 2, ...
- 003. 连接access数据库代码
1. 前端aspx中的代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="De ...
- unity shader random number
http://gamedev.stackexchange.com/questions/32681/random-number-hlsl
- Openjudge计算概论——数组逆序重放【递归练习】
/*===================================== 数组逆序重放 总时间限制:1000ms 内存限制:65536kB 描述 将一个数组中的值按逆序重新存放. 例如,原来的顺 ...
- php-mysql-excel
<?php $fname = $_FILES['MyFile']['name']; $do = copy($_FILES['MyFile']['tmp_name'],$fname); if ($ ...