我对图像处理很陌生。我有一个PNG图像(使用ImageIO.read()
读取),当我调用getType()
时产生BufferedImage.TYPE_CUSTOM
。
BufferedImage bi = ImageIO.read(new URL("file:/C:/samp1.png"));
int type =bi.getType(); //TYPE_CUSTOM for samp1.png
现在我想将其转换为以下模型之一:
- TYPE_USHORT_GRAY
- TYPE_3BYTE_BGR
- TYPE_BYTE_GRAY
- TYPE_INT_RGB
- TYPE_INT_ARGB
我如何从TYPE_CUSTOM
颜色模型转换到其他模型?
任何帮助/指示将不胜感激。如果没有任何现有的库可以做到这一点,任何链接/发布到步骤/算法将是伟大的。
试试这个:
public static BufferedImage convert(BufferedImage src, int bufImgType) {
BufferedImage img= new BufferedImage(src.getWidth(), src.getHeight(), bufImgType);
Graphics2D g2d= img.createGraphics();
g2d.drawImage(src, 0, 0, null);
g2d.dispose();
return img;
}
你试过吗?
BufferedImage rgbImg = new BufferedImage(bi.getWidth(), bi.getHeight(), BufferedImage.TYPE_INT_RGB);