1、BitmapFactory.Options中的属性在进行图片压缩时,是通过设置BitmapFactory.Options的一些值来改变图片的属性的,下面我们来看看BitmapFactory.Options中常用的属性意思:options.inPreferredConfig - 设置Bitmap的偏好配置,值有Bitmap.Config.ARGB_8888,Bitmap.Config.ARGB_4444,Bitmap.Config.ARGB_8888,Bitmap.Config.RGB_565。默认为ARGB_8888,顾名思义,这是设置Bitmap的显示质量的。options.outHeight - 得到该Bitma...
在上一篇专题Android开发之图片处理专题(一):利用软引用构建图片高速缓存中我们讲述了如何利用软引用技术构建高速缓存。那么想要用到图片,首先得有图片的来源。一般而言,一个应用的图片资源都是从服务器处获得的。今天,我们利用Android开发之网络请求通信专题(二):基于HttpClient的文件上传下载里面封装好的httpUtils来实现图片的下载,然后加载到本地配合软引用缓存使用,以一个listView为例子来说明。一、准备工作我们需...
1.质量压缩 bmp.compress()这种压缩方法之所以称之为质量压缩,是因为它不会减少图片的像素。它是在保持像素的前提下改变图片的位深及透明度等,来达到压缩图片的目的。进过它压缩的图片文件大小会有改变,但是导入成bitmap后占得内存是不变的。因为要保持像素不变,所以它就无法无限压缩,到达一个值之后就不会继续变小了。显然这个方法并不适用与缩略图,其实也不适用于想通过压缩图片减少内存的适用,仅仅适用于想在保证图片质...
这一讲就是本系列的第二篇,一起来聊下关于android中加载高清大图的问题,我们都知道如果我们直接加载原图的话,一个是非常慢,需要等待一定时间,如果没有在一定的时间内给用户响应的话,将会极大影响用户的体验。另一个是如果你的手机内存小的话,可能会直接崩溃。这也就是直接加载高清原图问题。遇到这些问题很容易想到的一点就是图片压缩,本篇文章也就是讲述图片压缩方式来实现加载高清大图的效果。但是现在问题就来了,通过上...
近期在做图片上传的功能,从相机拍摄或从相册选区。就研究了这方面的东西一.图片的基本知识
1.文件形式(即以二进制形式存在于硬盘上)
获取大小(Byte):File.length()
2.流的形式(即以二进制形式存在于内存中)
获取大小(Byte):new FileInputStream(File).available()
3.Bitmap形式
获取大小(Byte):Bitmap.getByteCount()下面以我拍摄的图片为例,看下三者的大小区别(所用软件为自己临时开发的小工具);从图中可以看出:
...
BufferedInputStream in = new BufferedInputStream(new FileInputStream(new File(path)));BitmapFactory.Options options = new BitmapFactory.Options();options.inJustDecodeBounds = false;options.inSampleSize = 2;//宽和高变为原来的1/2,即图片压缩为原来的1/4Bitmap bitmap = BitmapFactory.decodeStream(in, null, options);原文:http://www.cnblogs.com/clnchanpin/p/7131677.html
android之资源优化处理—图片压缩转载请著名出处,谢谢:http://blog.csdn.net/lijunhuayc 前几天对N年前的android旧项目做优化的时候,有个界面进不去,刚切换就OOM了,详细查看之下,竟然发现了400k之大的资源文件,靠,这怎么了得。想用PS自己做无损压缩,怎奈PS技能渣的掉牙,无果!~刚好今天看到了几款免费的图片压缩工具,随不是无损压缩,但这个“损”肉眼几乎是无法识别的。
这些压缩工具打包采用良好的压缩算法,能最大...
1. 引子前几天跟服务端的一个妹子联调接口,服务器配置一张图片,几十KB就行,她问我图片从哪里找,我告诉她先随便在网上找个图片链接就行了。结果一运行程序,就崩溃了,出现了下面的异常。java.lang.OutofMemoryError内存溢出OOM,我当时一脸懵逼。图-1 一脸懵逼于是拿着后台返回的链接去查看了一下图片,是一张6M的壁纸。图-2 我内心几乎是崩溃的 这只是一个简单的联调,而在联调过程中操作不当导致出现OOM问题,大家就当...
项目中摘出来的一个小功能模块,有需要的朋友可以借鉴下。效果图:具体功能:将拍摄的照片保存到SDcard中具体需求:1.图片名保存格式:图片名称_手机型号_随机4位数.jpg2.将图片分解,压缩,显示3.写入SDCard卡保存具体实现:1.定义布局文件2.编写业务代码这里只对调用相机拍照、图片显示、保存 做介绍 并提供源码下载点击按钮后:@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_getphoto:mPhotoNam...
我们在发微博或者csdn博文的时候都可以给图片加上一个水印,一个独立的标识,那是怎么实现的呢?先封装一个BitmapTools封装类,该类要解决的问题是一将突破存储至sdcard中,二给图片加上水印。BitmapToolspackage com.example.g11_bitmap04;import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.B...
前言Bitmap是Android中一种重要的图片处理机制,它可以用来获取图片的相关信息,同时可以对图片进行裁剪、缩放等操作,也可以指定图片格式进行保存。相信对于OOM再熟悉不过了,OOM的产生是一个非常头疼的事情,如果在加载图片的时候未对大图进行处理,它将会占用非常大的内存,这样就非常容易产生OOM。所以我们必须要有意识的对大图进行压缩加载,这样才能更好的保证App的正常运行与性能的稳定。Bitmap大小计算那么如果计算一张图片...
当前android访问接口传输数据多使用json格式(简单易解析跨平台),为了节省带宽和传输时间服务器往往会在传输前进行gzip压缩,下面是几个需要注意的地方。 1. 针对php服务器,在访问接口的时候必须在header里带上参数Accept-Encoding: gzip, deflate,不然即使后台做了gzip压缩,也不会进行真正的压缩。 2.如果服务端对数据进行了gzip压缩,那么在ap取得数据前需要对数据先进行gzip解压即:public String getResponseBody...
有没有办法以编程方式在android 1.6中解压缩rar文件?
我已经尝试过JUNRAR,但有一些例外情况…
这是我的代码,使用junrar库成功打开rar文件后:FileHeader fh=null;while(true){fh=rar.nextFileHeader();if(fh==null) return false; if(fh.isEncrypted()) continue; //check fileif(!fh.isDirectory() && fh.getFileNameString().toLowerCase().endsWith(".jpg")) {try {File f=new File(tmppath+covername); //name of...
我正在编写一个具有简单摄像头功能的应用程序.我在主要活动中拍照,然后启动一个新线程以旋转图像,添加透明水印并将其另存为.PNG.
这个程序在运行自定义rom的三星银河S3上运行良好:AOKP,Android 4.4.2.下面给出的代码执行总时间约为2秒.根据任务管理器,我的应用程序使用了大约9 Mb的内存.
当我在运行有库存(有根)的Android 4.4.2的银河S4上运行该应用程序时,执行时间超过了27秒.该应用程序根据任务管理器使用大约124 Mb的内存(太多...
我想编写自己的代码来压缩图像,然后再将其上传到服务器.
我看到过很多关于SO的帖子,例如this,也有很多其他的帖子,但是到处都只有代码示例.实际上没有任何地方解释它.我无法从给定的代码中了解.
我只想了解压缩图像的总体方法,这样我就可以开始自己编写代码了.
我不是在寻找代码,只是在寻找一个人压缩图像所需要遵循的步骤. (就像在编写程序之前编写算法一样,即伪代码)解决方法:我认为Chetan Joshi的答案是迄今为止最接近的答案.但是...