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

    我们现在手机的摄像头像素是越来越高,本以为一个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是我的一个上传方法,回头再说。

(完)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值