java - 如何在不降低质量的情况下从图像 (JPG) 中删除元数据?

标签 java image metadata jpeg image-compression

我已经在 Stackoverflow 上找到了这个几乎相似的问题:

How can I remove metadata from a JPEG image in Java?

但是当我使用上述方法时,保存的图像正在被压缩。有没有办法在不压缩图像的情况下删除元数据?我可以在我的 Java 程序中使用任何库吗?

最佳答案

好的,我终于找到了使用 Apache“commons-imaging”的解决方案:

https://svn.apache.org/repos/asf/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/examples/WriteExifMetadataExample.java

    public void removeExifMetadata(final File jpegImageFile, final File dst)
        throws IOException, ImageReadException, ImageWriteException {
    OutputStream os = null;
    try {
        os = new FileOutputStream(dst);
        os = new BufferedOutputStream(os);

        new ExifRewriter().removeExifMetadata(jpegImageFile, os);
    } finally {
        if (os != null) {
            try {
                os.close();
            } catch (final IOException e) {

            }
        }
    }
}

关于java - 如何在不降低质量的情况下从图像 (JPG) 中删除元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17552031/

相关文章:

java - 主键的 Hibernate @GeneratedValue 空错误

java - 某些 Android 设备中的背景颜色错误

javascript - 如何在没有抗锯齿的情况下拉伸(stretch)图像

ssis - "Metadata driven"是什么意思?我一直在 ETL 上下文中听到这个短语,但永远无法弄清楚

python - 通过pypdf在pdf文件上读/写xmp元数据

metadata - 如何访问 UIMA 中的文档元数据?

java - 正则表达式后顾之忧

java - 如何查找兄弟索引小于 x 且大于 y 的元素

c++ - 有 libPNG 64 位吗?

javascript - 如何在悬停时交换图像时淡入淡出 "this.src.replace"(jQuery)