在 Java 中将 TIFF 转换为 JPG 是开发人员在需要在网页上显示高分辨率图像或将其嵌入报告时的常见需求。Conholdate.Total for Java 提供了强大的 SDK,只需几行代码即可简化此任务。在本指南中,您将看到一个完整的可直接运行的示例,学习如何处理多页 TIFF 文件,并了解控制质量和分辨率的选项。完成后,您将能够自信地将 TIFF 转换为 JPG 并集成到任何 Java 应用程序中。

将 TIFF 转换为 JPG 的 Java 要求

Java 应用程序在处理扫描文档、医学图像或卫星摄影时,通常会接收多页 TIFF 文件作为输入。转换必须保留细节,支持高分辨率输出,并为每页生成单独的 JPG,以简化后续处理。手动转换工具无法脚本化且难以扩展,因此在批处理或实时场景中,自动化库是必不可少的。

Conholdate.Total for Java 如何在 Java 中将 TIFF 转换为 JPG

Conholdate.Total for Java 提供了专用的转换引擎,能够识别 TIFF 格式,包括多页图像,并能够生成高质量的 JPG 输出。SDK 允许您设置输出质量、DPI 分辨率和页面选择,从而满足对图像保真度进行精确控制的需求。文档和 API 参考可帮助您了解每个功能:请参阅官方文档和API 参考。只需添加一个简单的 Maven 依赖,库即可无缝集成到任何 Java 项目中。

在 Java 中实现 TIFF 到 JPG 转换

以下步骤将引导您完成项目设置、SDK 初始化以及执行转换。

为 Conholdate.Total 添加 Maven 依赖

在您的 pom.xml 中包含 Conholdate Maven 仓库和 SDK 依赖项。这确保库在编译时可用。

<repositories>
  <repository>
    <id>conholdate-repo</id>
    <name>Conholdate Maven Repository</name>
    <url>https://repository.conholdate.com/repo/</url>
  </repository>
</repositories>

<dependency>
  <groupId>com.conholdate</groupId>
  <artifactId>conholdate-total</artifactId>
  <version>24.9</version>
  <type>pom</type>
</dependency>

您可以从下载页面下载最新版本。

初始化 ConversionHandler

创建 ConversionHandler 的实例。SDK 假设在您的应用程序的其他位置已设置有效许可证。

ConversionHandler conversionHandler = new ConversionHandler();

有关其他初始化选项,请参阅 ConversionHandler 类。

加载 TIFF 文件并检索页数

使用 LoadOptions 和 getFileInfo 获取源 TIFF 的信息,包括页数。

LoadOptions loadOptions = new LoadOptions();
FileInfo fileInfo = conversionHandler.getFileInfo("sample.tif", loadOptions);
TiffFileInfo tiffInfo = (TiffFileInfo) fileInfo;
int pageCount = tiffInfo.getPages().size();

此步骤对 Java 中的 TIFF 转 JPG 转换实用程序 至关重要,因为它实现了逐页处理。

配置 JPG 转换选项

设置所需的质量、分辨率以及要转换的特定页面。这些设置是 Java 中的高分辨率 TIFF 转 JPG 转换 工作流的一部分。

JpgConvertOptions jpgOptions = new JpgConvertOptions();
jpgOptions.setQuality(90);          // 0‑100
jpgOptions.setResolution(300);      // DPI
jpgOptions.setPageNumber(i + 1);    // 1‑based page index

执行转换循环并验证输出

遍历每一页,执行转换,并验证生成的 JPG 文件是否存在。

for (int i = 0; i < pageCount; i++) {
    jpgOptions.setPageNumber(i + 1);
    String outputPath = Paths.get("output", "page_" + (i + 1) + ".jpg").toString();
    conversionHandler.convert("sample.tif", loadOptions, jpgOptions, outputPath);

File resultFile = new File(outputPath);
    if (resultFile.exists() && resultFile.length() > 0) {
        System.out.println("Successfully converted page " + (i + 1));
    } else {
        System.err.println("Conversion failed for page " + (i + 1));
    }
}

这演示了 Java 中的批量 TIFF 转 JPG 转换,代码极简。

完整代码示例:将 TIFF 转换为 JPG 并输出高分辨率

以下代码展示了上述完整实现。

import com.groupdocs.conversion.ConversionHandler;
import com.groupdocs.conversion.filetypes.FileInfo;
import com.groupdocs.conversion.filetypes.tiff.TiffFileInfo;
import com.groupdocs.conversion.options.load.LoadOptions;
import com.groupdocs.conversion.options.convert.JpgConvertOptions;
import java.io.File;
import java.nio.file.Paths;

public class TiffToJpgConverter {
    public static void main(String[] args) {
        // Input TIFF file (can be multi‑page)
        String inputPath = "sample.tif";

// Directory where JPG files will be written
        String outputDir = "output";

// Desired output quality and resolution
        int outputQuality = 90;      // 0‑100
        int outputResolution = 300; // DPI

// Ensure the output directory exists
        File outFolder = new File(outputDir);
        if (!outFolder.exists()) {
            outFolder.mkdirs();
        }

try {
            // Initialise the conversion handler (license is assumed to be set elsewhere)
            ConversionHandler conversionHandler = new ConversionHandler();

// Load options – can be left empty for default behaviour
            LoadOptions loadOptions = new LoadOptions();

// Retrieve file information to know how many pages the TIFF contains
            FileInfo fileInfo = conversionHandler.getFileInfo(inputPath, loadOptions);
            if (!(fileInfo instanceof TiffFileInfo)) {
                System.err.println("The provided file is not a TIFF image.");
                return;
            }
            TiffFileInfo tiffInfo = (TiffFileInfo) fileInfo;
            int pageCount = tiffInfo.getPages().size();

// Convert each page of the TIFF to a separate JPG
            for (int i = 0; i < pageCount; i++) {
                JpgConvertOptions jpgOptions = new JpgConvertOptions();
                jpgOptions.setQuality(outputQuality);
                jpgOptions.setResolution(outputResolution);
                jpgOptions.setPageNumber(i + 1); // pages are 1‑based

String outputPath = Paths.get(outputDir, "page_" + (i + 1) + ".jpg").toString();

// Perform the conversion
                conversionHandler.convert(inputPath, loadOptions, jpgOptions, outputPath);

// Simple validation of the result
                File resultFile = new File(outputPath);
                if (resultFile.exists() && resultFile.length() > 0) {
                    System.out.println("Successfully converted page " + (i + 1) + " to " + outputPath);
                } else {
                    System.err.println("Conversion failed for page " + (i + 1));
                }
            }
        } catch (Exception ex) {
            System.err.println("Error during TIFF to JPG conversion: " + ex.getMessage());
            ex.printStackTrace();
        }
    }
}

注意: 此代码示例演示了核心功能。在将其用于项目之前,请确保更新所有文件路径和配置值以匹配实际环境,验证已正确安装所有必需的依赖项,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

微调高分辨率输出设置

有多个选项可让您控制生成的 JPG 文件的质量和大小。

  • Quality - 确定 JPEG 的压缩级别(0‑100)。较高的数值保留更多细节。
jpgOptions.setQuality(90);
  • Resolution - 设置输出图像的 DPI。300 DPI 是印刷就绪图形的标准值。
jpgOptions.setResolution(300);
  • PageNumber - 指定要转换的多页 TIFF 的哪一页。在循环中更改此值可实现批处理。
jpgOptions.setPageNumber(i + 1);

您还可以在 API 参考中探索其他属性,例如 setColorMode 或 setCompressionLevel,以应对更高级的场景。

关键要点

在 Java 中将 TIFF 转换为 JPG 变得简单,只需使用 Conholdate.Total for Java。SDK 能够处理多页 TIFF,允许您微调质量和分辨率,并且可以干净地集成到基于 Maven 的项目中。请记得获取正式的生产许可证;定价详情请参阅定价页面,临时许可证可在临时许可证页面获取。通过提供的代码和配置技巧,您现在可以在任何 Java 应用程序中添加可靠的图像转换功能。

您可能会有的疑问

如何在 Java 中将多页 TIFF 转换为单独的 JPG 文件?
使用 ConversionHandler 检索页数,然后在循环中为每页设置 JpgConvertOptions.setPageNumber。SDK 将为每页生成一个 JPG,如完整示例所示。

在 Java 中进行 TIFF 转 JPG 转换时,我应该注意哪些性能考虑因素?
处理大型、高分辨率的 TIFF 文件可能会消耗内存。重用单个 ConversionHandler 实例并立即写入每个输出文件有助于保持低内存占用。调整 resolution 和 quality 值也可以缩短处理时间。

是否有办法在不使用中间文件的情况下执行基于流的 TIFF 到 JPG 转换?
是的。SDK 支持通过接受 InputStream 和 OutputStream 的 convert 方法重载来进行流式输入和输出。请参阅 API 参考 以获取确切的签名。

我在哪里可以找到更多关于 Conholdate.Total for Java 的示例和支持?
官方文档包含详细的指南,社区论坛是提问和分享解决方案的绝佳场所。

继续探索