Android如何实现压缩图片后再上传至服务器

来源:互联网 发布:阿里万网域名注册官网 编辑:程序博客网 时间:2024/04/26 18:04

    我们现在手机的摄像头像素是越来越高,本以为一个500*500像素的照片应该不会很大,可是上传至服务器后竟然有200-300K,这对于哪些2G网络的手机来说,下载几十几张那简直就是灾难。好在我们有解决的办法。

    这里只说如何压缩图片的质量,不讨论如何裁剪图片和上传图片,关于这个功能随后我会专门写一个上传图片和裁剪的文章。

具体方法是这样的

Bitmap photo = BitmapFactory.decodeFile(图片路径);

Bundle extra = data.getExtras();

photo = (Bitmap) extra.get("data"); 

(这里是通过裁剪后,使用onActivityResult方法获取到的图片)

核心就是下面的一句

ByteArrayOutputStream stream = new ByteArrayOutputStream();

photo.compress(Bitmap.CompressFormat.JPEG,100,stream);

注意这里的第二个参数默认是100是不进行压缩处理的,你可以根据具体情况进行处理,我的设置是30基本上可以保证图片不会失真。可以把200-300K的图片压缩至40K左右。然后就可以将该图片显示在ImageView中。

下面说说如何将图片压缩将保存至SD卡中:

Bitmap Photo还是原来的Photo

String filePath = DuParm.tempPath + BannerFileName;File file = new File(filePath);try {file.createNewFile();FileOutputStream fOut = null;fOut = new FileOutputStream(file);if(photo.compress(Bitmap.CompressFormat.JPEG,100,fOut)){fOut.flush();fOut.close();}} catch (IOException e) {e.printStackTrace();}toUploadFile(filePath);


toUploadFile是我的一个上传方法,回头再说。

(完)

原创粉丝点击