用BufferedImage、JPEGImageEncoder压缩图片,背景为透明的图片压缩后背景变成黑色,其他图片压缩却正常,这是怎么回事,有什么解决的方法吗?图片需要与原图片尺寸一直,不能缩小图片长宽。
原图:
压缩后:
BufferedImage tag = new BufferedImage((int) newWidth,(int) newHeight,
BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(img.getScaledInstance(newWidth, newHeight,
Image.SCALE_SMOOTH), 0, 0, null);
FileOutputStream out = new FileOutputStream(outputFile);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(tag);
out.close();
------解决思路----------------------
透明图片有4个通道:ARGB
PNG不能转换为JPG压缩的,JPG是不带透明色的,不然你找一张带透明色的JPG格式图片出来。。。。