openjdk ImageIO.write()时出现Invalid argument to native writeImage
原文链接: https://www.cnblogs.com/shiyun32/p/15918613.html
问题:在本地开发时使用的是oracle jdk8,没有问题,但是生产上面使用的是openjdk-8u252-b09,生成图片时一直报Invalid argument to native writeImage
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:1067) at com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(JPEGImageWriter.java:363) at javax.imageio.ImageWriter.write(ImageWriter.java:615) at javax.imageio.ImageIO.doWrite(ImageIO.java:1622) at javax.imageio.ImageIO.write(ImageIO.java:1548)
代码(报错diam):
public String exportImg(List<Node> nodes, String piclocation, Font font){ //1.jpg模板路径 Resource resource = new ClassPathResource(piclocation); String path = ""; String fileName = ""; BufferedImage buffImg = null; InputStream inputStream = null; try { inputStream = resource.getInputStream(); buffImg = ImageIO.read(inputStream); //得到画笔对象 Graphics g = buffImg.getGraphics(); //设置颜色。 g.setColor(Color.BLACK); Graphics2D tip = buffImg.createGraphics(); tip.setColor(Color.BLACK); font = new Font("宋体", Font.PLAIN, 14); tip.setFont(font); picDraw(nodes, tip); g.dispose(); path = System.getProperty("java.io.tmpdir") + File.separator + File.separator; File file = new File(path); file.mkdirs(); fileName = UUID.randomUUID() + ".jpg"; ImageIO.write(buffImg, "jpg", new File(path + fileName)); } catch (IOException e) { e.printStackTrace(); } finally { try { //关闭流 if (inputStream != null) { inputStream.close(); } } catch (Exception finalExcp) { return finalExcp.getMessage(); } } return path + fileName; }
解决:
将上面红色的代码改为:
ImageIO.write(buffImg, "png", new File(path + fileName));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2020-09-09 MyBatis-Plus 使用xml文件