上传图片变色或报“Invalid argument to native writeImage”错误

原文https://blog.csdn.net/zuoyedongfeng/article/details/84837537
上传图片变色或报“Invalid argument to native writeImage”错误

原因:jpg和jpeg格式的图片需要重画

解决方法:

/**

  • 保存图片
  • @param image 图片
  • @param formatName 格式名称
  • @param outFile 输入文件
  • @throws IOException
    */
    public static void saveAs(BufferedImage image, String formatName, File outFile) throws IOException {
    if (formatName.equalsIgnoreCase(“jpg”) || formatName.equalsIgnoreCase(“jpeg”)) { //重画一下,要么会变色
    BufferedImage tag;
    tag = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_BGR);
    Graphics g = tag.getGraphics();
    g.drawImage(image, 0, 0, null); // 绘制缩小后的图
    g.dispose();
    image = tag;
    }
    ImageIO.write(image, formatName, outFile);
    }

你可能感兴趣的:(java,读书笔记)