Java如何将tif格式图片转为jpg格式图片

309 阅读1分钟

在Java中,将TIFF(.tif)格式的图片转换为JPEG(.jpg)格式的图片,通常需要使用图像处理库,如Apache Commons Imaging(之前称为Sanselan)或Java Advanced Imaging (JAI)。但是,由于Apache Commons Imaging更常用且维护得更好,我将使用它作为示例。

以下是一个使用Apache Commons Imaging库将TIFF图片转换为JPEG图片的简单示例:

1、确保将Apache Commons Imaging添加到项目的依赖中。使用Maven,可以在pom.xml中添加以下依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-imaging</artifactId>
    <version>1.0-alpha2</version> <!-- 请检查是否有更新的版本 -->
</dependency>

2、使用以下代码将TIFF图片转换为JPEG图片:

import org.apache.commons.imaging.*;
import org.apache.commons.imaging.common.BinaryOutputStream;
import org.apache.commons.imaging.formats.jpeg.JpegWriteParams;
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata;
import org.apache.commons.imaging.formats.tiff.write.TiffOutputDirectory;
import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.imageio.ImageIO;

public class TiffToJpegConverter {

    public static void main(String[] args) {
        try {
            // 读取TIFF图片
            File inputFile = new File("path/to/your/image.tif");
            BufferedImage bufferedImage = ImageIO.read(inputFile);

            // 将BufferedImage写入JPEG文件
            File outputFile = new File("path/to/your/output.jpg");
            ImageIO.write(bufferedImage, "jpg", outputFile);

            // 如果需要更高级的TIFF到JPEG的转换(例如,保留元数据等),
            // 您可能需要使用Apache Commons Imaging的更低级别的API,但这通常更复杂

            // 示例结束,因为直接使用ImageIO对于简单的转换已经足够了

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}