我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android Bitmap压缩方式分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android Bitmap压缩方式分析

Android Bitmap压缩方式分析

在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩);质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手机拍照都能达到3M左右了,尺寸压缩一般可用于生成缩略图。

在Android开发中我们都会遇到在一个100*100的ImageView上显示一张过大的图片,如果直接把这张图片显示上去对我们应用没有一点好处反而存在OOM的危险,所以我们有必要采用一种有效压缩方式来显示上去。

private void calculateBitmapInSimpleSize() {    Bitmap _bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bg_homepage);    getBitmapDatas(_bitmap);    BitmapFactory.Options optioins = new BitmapFactory.Options();    optioins.inJustDecodeBounds = true;//    optioins.inPreferredConfig = Bitmap.Config.RGB_565;//11158560    optioins.inPreferredConfig = Bitmap.Config.ARGB_8888;//22317120    BitmapFactory.decodeResource(getResources(), R.drawable.bg_homepage, optioins);    int reqWidth = optioins.outWidth;    int reqHeight = optioins.outHeight;    Log.w(TAG, "reqWidth = " + reqWidth);    Log.w(TAG, "reqHeight = " + reqHeight);    int inSampleSize = 1;    final int widthRatio = Math.round((float)reqWidth / 100f);    final int heigthRatio = Math.round((float) reqHeight / 100f);    // 取最小值 这将保证压缩出来的图片大于或者等于请求的宽度或者高度    inSampleSize = widthRatio > heigthRatio ? heigthRatio : widthRatio;    Log.w(TAG, "first inSampleSize = " + inSampleSize);    final int totalPixel = 100 * 100;    final int totalReqPixel = reqWidth * reqHeight * 2;    Log.w(TAG, "totalReqPixel = " + totalReqPixel);    while (totalPixel / (inSampleSize * inSampleSize) > totalReqPixel) {      Log.w(TAG, "totalPixel = " + (totalPixel / (inSampleSize * inSampleSize)));      inSampleSize ++;    }    Log.w(TAG, "LastInSampleSize = " + inSampleSize);    optioins.inJustDecodeBounds = false;    Bitmap lastBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bg_homepage, optioins);    getBitmapDatas(lastBitmap);    mImageView.setImageBitmap(lastBitmap);  }

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android Bitmap压缩方式分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android Bitmap压缩方式分析

Android Bitmap压缩方式分析在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩);质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手
2023-05-30

Android实现图片压缩(bitmap的六种压缩方式)

Android中图片是以bitmap形式存在的,那么bitmap所占内存,直接影响到了应用所占内存大小,首先要知道bitmap所占内存大小计算方式: 图片长度 x 图片宽度 x 一个像素点占用的字节数 以下是图片的压缩格式:其中,A代表透明
2022-06-06

Android Bitmap压缩方法的选择详解

刚刚修改Bug碰到了一个问题,先描述一下问题。 1.测试说分享文章到微信失败,QQ成功。定位到微信分享接口。2.分享其它文章到微信成功。接口有问题!差点就找接口了,还好没3.断点微信分享,发现突然压缩失败。代码写法问题,下面会分解4.找到原
2022-06-06

android bitmap compress(图片压缩)代码

android的照相功能随着手机硬件的发展,变得越来越强大,能够找出很高分辨率的图片。有些场景中,需要照相并且上传到服务,但是由于图片的大小太大,那么就上传就会很慢(在有些网络情况下),而且很耗流量,要想速度快,那么就需要减小图片的大小。减
2022-06-06

详解android 通过uri获取bitmap图片并压缩

详解android 通过uri获取bitmap图片并压缩很多人在调用图库选择图片时会在onActivityResult中用Media.getBitmap来获取返回的图片,如下:Uri mImageCaptureUri = data.getD
2023-05-30

Linux中bz2压缩格式的示例分析

这篇文章主要介绍Linux中bz2压缩格式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux中的bz2压缩格式的实例详解一 语法bzip2 源文件压缩为bz2格式,不保存源文件bzip2 -k 源文件
2023-06-09

Linux分卷压缩与解压缩的方法

这篇文章主要讲解了“Linux分卷压缩与解压缩的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux分卷压缩与解压缩的方法”吧!1.举例说明:要将目录logs打包压缩并分割成多个1M
2023-06-05

android中Bitmap用法(显示,保存,缩放,旋转)实例分析

本文实例讲述了android中Bitmap用法。分享给大家供大家参考。具体如下: 在Android SDK中可以支持的图片格式如下:png , jpg , gif和bmp。 1.Bitmap的创建 借助于BitmapFactory。 1)资
2022-06-06

Android实现zip文件压缩及解压缩的方法

本文实例讲述了Android实现zip文件压缩及解压缩的方法。分享给大家供大家参考。具体如下: DirTraversal.java如下:package com.once; import java.io.File; import java.u
2022-06-06

Android常见的图片压缩方式有哪些

小编给大家分享一下Android常见的图片压缩方式有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!先给出一组数据原图:width:2976; height:2976原图实际:--->byte:2299820 Mb:2.
2023-06-15

Android中Bitmap用法实例分析

本文实例讲述了Android中Bitmap用法。分享给大家供大家参考,具体如下: 一般在android程序中把图片文件放在res/drawable目录下就可以通过R.drawable.id来使用,但在存储卡中的图片怎样引用呢?下面通过实现这
2022-06-06

Linux中有哪些压缩格式的压缩与解压方法

Linux中有哪些压缩格式的压缩与解压方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于P
2023-06-09

Linux下常用压缩格式的压缩与解压方法详解

.tar 解包: tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) -----------------------------------------
2022-06-03

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录