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

我对图像处理很新。 我有一个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颜色模型转换为其他模型?

任何帮助/指针将不胜感激。 如果没有任何现有的库可以执行此操作,那么任何指向步骤/算法的链接/post都会很棒。

你试过这个吗?

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

尝试这个:

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