使用Thumbnails压缩ios拍摄出来的照片,图片变红的问题解决办法

使用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