【问题标题】:java save jpg as pngjava保存jpg为png
【发布时间】:2011-05-17 16:20:38
【问题描述】:

我在磁盘上有一个 jpg 文件的图像。我想将其转换并保存为 png 并删除原始 jpg。在java中做到这一点的最佳方法是什么?

String justNameJpg = "something.jpg";
String justNamePng = ImageEditor.GetImageNameNoExtension(justName) + "." + "png";
java.awt.image.BufferedImage bufferedImage = ImageIO.read(new File(folder, justNameJpg));
ImageIO.write(bufferedImage, "png", new File(folder, justNamePng));

【问题讨论】:

    标签: java image-processing image-editor


    【解决方案1】:

    如果你想使用 ImageIO,这应该可以:

    ImageIO.write(image, "png", new File("new output file name")); 
    

    【讨论】:

    • 首先检查 .png 格式是否存在于由ImageIO.getWriterFormatNames() 返回的数组中,检查它是否受支持是没有坏处的
    【解决方案2】:

    最好的方法是调用外部工具“imagemagick”。这不是开玩笑。我在我的应用程序中就是这样做的,因为它比 Java 中的所有功能都更快、更可靠。

    【讨论】:

      【解决方案3】:

      imagemagick 是一个不错的选择,来自@Daniels 的回答。如果你想在代码中转换缩略图,我很幸运

      http://code.google.com/p/thumbnailator/

      它支持从示例页面为您更改文件格式:

      OutputStream os = ...;
      
      Thumbnails.of("large-picture.jpg")
              .size(200, 200)
              .outputFormat("png")
              .toOutputStream(os);
      

      【讨论】: