当前位置: 首页 > 面试题库 >

ImageIO无法写入JPEG文件

咸琪
2023-03-14
问题内容

我正在尝试将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,则透明度仍然存在。



 类似资料:
  • 问题内容: 这是我的第一篇文章,请问如果我做错了什么。直到我尝试从源包中读取图像,此代码才能正常运行。但是现在它无法读取任何图像。我究竟做错了什么?还是关于日食的事? 例外: 谢谢… 问题答案: 改变了,如果你使用的是Windows。 更跨平台的方法将替代 对于每对。 进一步了解File api文档 编辑 (对不起,我没有读过此行) 这段代码运行正常,直到我尝试从源包中读取图像 为了从jar包中获

  • 问题内容: 我不知道为什么这不起作用,但是程序说它无法读取输入文件。顺便说一下,这也在Ubuntu中运行: 这是示例代码: 该目录也位于程序的bin文件夹和src文件夹中。 问题答案: 如果您改为从资源流中获取图像怎么办?例如,

  • 问题内容: 我正在尝试从applet编写示例文件,但无法正常工作。下面是代码。 小程序 的HTML 我也没有得到任何错误。请指教。 问题答案: 这是因为小程序位于其自己的沙箱中,在沙箱中它们需要特殊权限才能执行某些操作,例如读取或写入客户端计算机的磁盘。记住,小程序是在客户端计算机的上下文中执行的,它们是客人并且需要遵循内部规则 查看小程序可以做什么和不能做什么以获取更多详细信息

  • 理想情况下,我想在localhost上记录开发过程中的一切,只记录实时服务器上的错误。我在我的开发平台(Windows 10,JavaWicket)上无法登录文件。 log4j2.xml 我已经设法得到一些日志写入我tomcat的文件夹。 只有我的一些信息出现了。我不知道什么符号有意义,什么符号没有意义。 可公开访问页面的基页记录子类。 [信息]2017-10-19 17:07:13.208[ht

  • 我在我的网站上使用Moxiemager,到目前为止它工作得很好 它可以上传jpg/gif/png等 但是我在上传jpeg图像时遇到了麻烦 我用这个图像来测试它http://upload.wikimedia.org/wikipedia/commons/8/86/Cactus_Flower_(简单宏)。jpeg 当我尝试上传它时,会出现一个错误,说"没有指定输入文件" 这就是我编写代码的方式 我也试过

  • 问题内容: 我们正在使用Java2D调整上传到我们网站的照片的大小,但是遇到了一个问题(一个看似古老的文件,请参阅:http : //forums.sun.com/thread.jspa?threadID=5425569)-一些特定的JPEG 当我们尝试输入包含其二进制数据的InputStream 时引发: (删除了堆栈跟踪的其余部分,这是我们的调用,servlet代码等) 我们将其范围缩小到使用