在上传图片到云端保存得时候对流进行处理:
byte[] filebyte;
filebyte = netDiskClientHelper.fileDown("mssctdfs".equals(netDiskClientHelper.getProperties().getNetDiskEnv())? FileUtil.convertNetDiskDir("", srcFile): srcFile, inputFileName);
InputStream instream = new ByteArrayInputStream(filebyte);
//原始
// src = ImageIO.read(instream);
//改造,因为上传的图片有的会表面自动生成一层颜色,这里就是去掉这层颜色
BufferedImage bufferedImage =ImageIO.read(instream);
生成缩略图使用ImageIO.read(instream); 读流造成图片上有一层奇奇怪怪得颜色;
网上有各种解决替换这句代码都没用;
实测使用以下代码可解决:
BufferedImage bufferedImage =ImageIO.read(instream);
int w = bufferedImage.getWidth();
int h = bufferedImage.getHeight();
BufferedImage newimg = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
int[] rgb = bufferedImage.getRGB(0, 0, w, h, null, 0, w);
newimg.setRGB(0, 0, w, h, rgb, 0, w);
src = newimg;
if(null != instream) {
instream.close();
}