如何在颜色模型之间进行转换

时间:2011-07-30 06:37:24

标签: java image image-processing

我对图像处理很新。我有一个PNG图片(使用ImageIO.read()阅读),当我在其上调用BufferedImage.TYPE_CUSTOM时会产生getType()

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
  6. 需要进行上述操作以使用仅识别上述类型的库进一步处理图像。

    如何将TYPE_CUSTOM颜色模型转换为其他模型?

    非常感谢任何帮助/指示。 如果没有任何现有的库可以执行此操作,那么任何链接/发布到步骤/算法都会很棒。

2 个答案:

答案 0 :(得分:11)

试试这个:

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;
}

答案 1 :(得分:0)

你试过这个吗?

BufferedImage rgbImg = new BufferedImage(bi.getWidth(), bi.getHeight(), BufferedImage.TYPE_INT_RGB);