使用Thumbnails压缩ios拍摄出来的照片,图片变红的问题解决办法
在网上搜了很多办法,有的说是ImageIO.read()方法的问题,建议用ImageReadHelper读取图片。
经过我的多次实验最终都没有解决问题。
but,有but哦,说明啥,说明最后我解决了,哈哈哈哈 ,直接粘源码
压缩方法如下:
这传进来图片的二进制字节数组
private byte[] decompressPicByte(byte[] picByte) {
try {
ByteArrayInputStream intputStream = new ByteArrayInputStream(picByte);
ImageWrapper imageWrapper = ImageReadHelper.read(intputStream);
Builder<? extends BufferedImage> builder = Thumbnails.of(imageWrapper.getAsBufferedImage()).scale(0.5).imageType(BufferedImage.TYPE_INT_RGB);
BufferedImage bufferedImage = builder.asBufferedImage();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bufferedImage,"JPEG", baos);
byte[] byteArray = baos.toByteArray();
return byteArray;
} catch (Exception e) {
}
return picByte;
}
重点是指定imageType,就是上面标红的部分,咱也不知道ios有啥特别之处,我很伤心.......
ImageReadHelper 是阿里的图片裁剪jar包:simpleimage.jar
附上下载连接:http://download.****.net/download/qq_28800347/12484111