有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

图像如何在grails/java中将PNG转换为jpeg

我有一个png文件,并试图将其转换为jpeg。但是最终的图像有错误的颜色,粉红色的区域很大。这是我的代码:

        BufferedImage image = null
        BufferedImage imageRGB = null

        image = ImageIO.read(new ByteArrayInputStream(imageBytesPng))

        imageRGB = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB)

        imageRGB.setData(image.getData())

        ByteArrayOutputStream baos=new ByteArrayOutputStream()

        ImageIO.write(imageRGB, "jpeg", baos)
        baos.flush()
        def outImage = baos.toByteArray()
        baos.close()
        return outImage

我可以更改什么以使图像颜色与png文件中的颜色相同


共 (2) 个答案

  1. # 1 楼答案

    尽最大努力

    import javax.media.jai.*;
    public class jai_png_jpg 
    {
       public static void main(String[] args)throws Exception  
       {
      String filename="input_png.png";
      //Read input PNG as a PlanarImage file
      PlanarImage inputfile = JAI.create("fileload", filename); 
      //write output in JPG Format 
      JAI.create("filestore",inputfile,"jai_jpg_output.jpg","JPEG"); } }
    
  2. # 2 楼答案

    InputStream pngInputStream = ...
    OutputStream jpgOutputStream = ...
    
    BufferedImage image = ImageIO.read(pngInputStream));
    ImageIO.write(image, "jpeg", jpgOutputStream);