这段时间做了一个剪裁并压缩图片的demo,但是做到一半的时候发现在压缩的时候出现了一些问题。
经过debug发现返回的bitmap对象为null,但是看输入流对象不为空,纠结了很久,后来一位eoe上的网友提醒帮我解开了疑惑。
原因是同一个输入流用了两次,在压缩的时候用它计算了一次压缩比例,最后用BitmapFactory.decodeStream()生成bitmap的时候又用了一次;
所以我用了一种解决办法:
把流通过toByteArray()转换成byte[]数组bt;
压缩的时候把bt转换成一个(a)流再使用;
生成bitmap的时候把bt转换成一个(b)流使用。
问题这样就解决了,办法可能会有些笨,现在还属于菜鸟,还需要学习