求助一个问题,100分,我也没多少分了。

============问题描述============


我在写一个图片压缩的方法,因为要上传到服务器,所以图片不可以过大。
网上的这些方法也都烂了,可是都不怎么管用。比如我现在使用的。
我在这个循环里设置了,如果baos.toByteArray().length / 1024>50成立,就继续压缩。
可是我设置段点之后,发现baos.toByteArray().length / 1024已经运行到小于50了,然后返回这个bitmap。当我上传到服务器的时候,图片竟然是二三百K,我想问问大家有没有懂的,帮我一下。
或者哪位朋友有好的图片压缩方法给我一个。


ByteArrayOutputStream baos = new ByteArrayOutputStream();

		image.compress(Bitmap.CompressFormat.JPEG, 100, baos);

		int options = 100;

		while ( baos.toByteArray().length / 1024>50) {

			baos.reset();

			options -= 10;	

			image.compress(Bitmap.CompressFormat.JPEG, options, baos);

		}

		ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());

		Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);

		return bitmap;



我不需要图片宽高的那种压缩,我只想要一张图片在不让它失真太严重的情况下,能压缩到50k以下。实在不行100k以内也可以。但是不要失真太严重

============解决方案1============


上传前
压缩前1024x768
压缩后1024x768
上传后
用搜狗浏览器预览图片右键点击图片选择图片属性
大小 41060 字节
维度 773   x   580   pixels
选择图片下载到桌面 
文件大小68.1K
尺寸1024 X768

转载于:https://www.cnblogs.com/liangxieliang56/p/4038885.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值