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