使用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.csdn.net/download/qq_28800347/12484111

 

 

 

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值