如何在颜色模型之间转换



我对图像处理很陌生。我有一个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

现在我想将其转换为以下模型之一:

  1. TYPE_USHORT_GRAY
  2. TYPE_3BYTE_BGR
  3. TYPE_BYTE_GRAY
  4. TYPE_INT_RGB
  5. 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);

最新更新