ImageIO无法写入JPEG文件

我正在尝试将BufferedImage写入jpeg文件,但是我的Java程序引发了异常。我能够成功将相同的缓冲区保存为gif和png。我尝试在Google上四处寻找解决方案,但无济于事。

码:

   File outputfile = new File("tiles/" + row + ":" + col + ".jpg");

try {

ImageIO.write(mapBufferTiles[row][col], "jpg", outputfile);

} catch (IOException e) {

outputfile.delete();

throw new RuntimeException(e);

}

例外:

 Exception in thread "main" java.lang.RuntimeException: javax.imageio.IIOException: Invalid argument to native writeImage

at MapServer.initMapBuffer(MapServer.java:90)

at MapServer.<init>(MapServer.java:24)

at MapServer.main(MapServer.java:118)

Caused by: javax.imageio.IIOException: Invalid argument to native writeImage

at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeImage(Native Method)

at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeOnThread(JPEGImageWriter.java:1055)

at com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(JPEGImageWriter.java:357)

at javax.imageio.ImageWriter.write(ImageWriter.java:615)

at javax.imageio.ImageIO.doWrite(ImageIO.java:1602)

at javax.imageio.ImageIO.write(ImageIO.java:1526)

at MapServer.initMapBuffer(MapServer.java:87)

... 2 more

回答:

OpenJDK没有本地JPEG编码器,请尝试使用Sun的JDK或使用库(例如JAI)

AFAIK,关于“粉红色色调”,Java将JPEG保存为ARGB(仍然具有透明度信息)。大多数观看者在打开时都假定四个通道必须对应于CMYK(而不是ARGB),因此对应于红色。

但是,如果将图像导入回Java,则透明度仍然存在。

以上是 ImageIO无法写入JPEG文件 的全部内容, 来源链接: utcz.com/qa/429579.html

回到顶部