============问题描述============
我在写一个图片压缩的方法,因为要上传到服务器,所以图片不可以过大。 网上的这些方法也都烂了,可是都不怎么管用。比如我现在使用的。 我在这个循环里设置了,如果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