求助一个问题,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
posted @ 2014-11-11 15:00  android教程  阅读(341)  评论(0编辑  收藏  举报
我要啦免费统计