TYPE_4BYTE_ABGR 转成 TYPE_3BYTE_BGR
思路
判断如果是TYPE_4BYTE_ABGR时,重新复制成一张TYPE_3BYTE_BGR类型的图。
InputStream inStream = new URL(url).openStream();
BufferedImage bufferedImage = ImageIO.read(inStream);
//开始转换
if(bufferedImage.getType()==BufferedImage.TYPE_4BYTE_ABGR){
BufferedImage image = new BufferedImage(bufferedImage.getWidth(null),bufferedImage.getHeight(null),BufferedImage.TYPE_3BYTE_BGR);
Color color = null;
Graphics2D bGr = image.createGraphics();
if (null != color) {
// 填充背景
bGr.setColor(color);
bGr.fillRect(0, 0,image.getWidth(),image.getHeight());
}
bGr.drawImage(image, 0, 0, null);
bGr.dispose();
bufferedImage = image;
}
执行结果