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语言的基础还是差了点,以后继续学习。

转载于:https://www.cnblogs.com/awkflf11/p/4765718.html

转-android图片降低图片大小保持图片清晰的方法相关推荐

  1. 如何快速图片压缩指定大小?图片压缩到200k以内的方法

    图片压缩到200k以内的介绍 在现代社交媒体和网页设计中,高质量的图片是必不可少的.但是,大型图像文件可能会导致页面加载时间过长,从而影响用户体验.这时就需要使用图片压缩技术来将图片文件大小减小到合理 ...

  2. 怎么改变图片的尺寸大小?图片大小如何修改?

    手机像素越来越高,拍摄出来的照片尺寸也越来越大,经常因为图片尺寸过大而导致照片无法上传,所以需要做一些图片大小修改.可以使用压缩图的图片改大小(在线修改图片尺寸大小工具-压缩图)功能来处理,而且这是一 ...

  3. JS控制图片显示的大小(图片等比例缩放)

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...

  4. Android Studio 根据屏幕大小缩放图片

    我想让APP的界面显示统一的视觉效果,但运行APP的手机屏幕尺寸有所不同,必须根据屏幕大小将图片按比例缩放,下面介绍一种实现方法. 首先获取屏幕大小 DisplayMetrics metrics = ...

  5. 压缩图片,任意大小的图片压缩到100K以内

    /压缩图像 +(NSData *)imageData:(UIImage *)myimage { NSData *data=UIImageJPEGRepresentation(myimage, 1.0) ...

  6. python压缩图片--指定压缩大小且保真压缩

    代码核心思路 循环降低图片质量quality 直至图片质量大小符合目标质量后退出循环 pillow压缩失真严重 ''' pip install pillow ''' from io import By ...

  7. ios 改变图片尺寸_iOS基础(十八)——调整图片尺寸和大小

    调整图片尺寸和大小 /** * 调整图片尺寸和大小 * * @param sourceImage 原始图片 * @param maxImageSize 新图片最大尺寸 * @param maxSize ...

  8. 截取固定大小图片css,css-使不同大小的图片在固定大小的容器中居中

    HTML示例如下: 方法一: .imgbox{ position: relative; width: 240px; height: 240px; } .imgbox img{ position: ab ...

  9. JAVA图片压缩指定大小范围

    图片压缩指定大小范围 图片压缩之后存在上下误差,不影响使用 @RequestMapping(value="/compress",method=RequestMethod.POST) ...

  10. 报名照片太大怎么压缩?压缩图片到固定大小的方法

    在报名专升本考试提交照片信息时会有40kb的限制,我们在上传照片就需要先压缩图片大小到40kb以下,使用普通的图片压缩工具无法做到自定义压缩图片kb.所以今天小编就教大家如何把图片压缩指定大小(图片压 ...

最新文章

  1. Angular 内容投影出现 No provider for TemplateRef found 错误的单步调试
  2. php我赢职场季枫_我赢职场 - 主页
  3. 根据屏幕大小加载css,css根据屏幕大小切换样式
  4. 3DsMax 创建阴影贴图的技术指南
  5. SweetAlert详解
  6. MediaElementAudioSourceNode
  7. 2.微型计算机系统的基本结构及计算机各个部件的功能
  8. Javascript 笔记与总结(1-3)arguments
  9. HP02: ssh: Could not resolve hostname hp02: Name or service not known HP01: ssh: Could not resolve h
  10. ajax上传文件formData
  11. 计组第六章 计算机的运算方法
  12. (附源码)ssm考试题库管理系统 毕业设计 069043
  13. jQuery实现form表单reset按钮重置清空表单功能
  14. Eclipse设置护眼豆沙绿
  15. 纯前端实现页面的回到顶部和回到底部功能
  16. jsp复习题库(1)
  17. core dump 是什么意思?
  18. AVR单片机网址推荐 .
  19. Java Math类方法介绍之史上最全
  20. 陀螺仪程序---可直接用

热门文章

  1. winhex使用经验
  2. Fragment之间的通信
  3. Leetcode Permutation Sequence
  4. ckeditor上传图片文件,研究了一天,终于...
  5. 2.4基于虚拟机的Linux内核编译
  6. PowerDesigner中使用vbscript访问对象进行批量操作
  7. linux 启动脚本 tty,Linux启动过程简介
  8. 蓝桥杯比赛常考算法_蓝桥杯总结-常用函数及算法
  9. linux coredump配置与调试
  10. Lambda 表达式(=):网络摘抄,自学用,侵删。