以编程方式旋转图像是构建预览生成器、照片编辑器或文档工作流时的常见需求。Conholdate.Total for Java 提供了强大的 SDK,使得在 Java 应用程序中进行图像处理变得简便。在本指南中,您将学习如何旋转 PNG 和 JPG 文件,配置旋转参数,并在保持高图像质量的同时保留元数据。

环境准备 - 前提条件和设置

在开始之前,请确保您具备以下条件:

  • 已安装 Java 17 或更高版本。
  • IDE,例如 IntelliJ IDEA 或 Eclipse。
  • Maven 用于依赖管理。

将 Conholdate Maven 仓库和 SDK 依赖添加到您的 pom.xml:

<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>

从官方下载页面下载最新的 SDK 二进制文件: Conholdate.Total for Java 下载。一旦解决了依赖关系,您就可以编写旋转图像的代码了。

在 Java 中旋转图像:分步演练

步骤 1:加载源和目标路径

定义输入和输出文件的位置。SDK 支持 PNG 和 JPG 两种格式。

String inputPath = "input.jpg";
String outputPath = "output_rotated.jpg";

步骤 2:初始化转换处理程序和选项

创建驱动转换过程的核心对象。

ConversionHandler handler = new ConversionHandler();
ImageConvertOptions options = new ImageConvertOptions();

步骤 3:设置旋转角度和背景颜色

指定将图像旋转多少度以及为空白角落填充的颜色。

options.setRotateAngle(90);               // Rotate 90 degrees clockwise
options.setBackgroundColor(Color.WHITE);  // Fill empty space with white

第4步:配置其他参数

在输出为 JPG 时,保留原始元数据并定义 JPEG 质量。

options.setPreserveMetadata(true);
options.setQuality(90); // JPEG quality (0‑100)

步骤 5:执行旋转

调用 convert 方法来应用旋转并写入结果。

handler.convert(inputPath, outputPath, options);
System.out.println("Image rotated successfully: " + outputPath);

有关 ConversionHandler 类的更多详细信息,请参阅官方 API 参考文档。

完整代码示例:在 Java 中使用 Conholdate.Total 旋转图像

以下示例演示了旋转图像文件的完整工作流。

本示例演示如何将 JPG 图像旋转 90 度并保存结果。

import com.groupdocs.conversion.ConversionHandler;
import com.groupdocs.conversion.options.convert.ImageConvertOptions;
import java.awt.Color;

public class RotateImageExample {
    public static void main(String[] args) {
        String inputPath = "input.jpg";
        String outputPath = "output_rotated.jpg";

try (ConversionHandler handler = new ConversionHandler()) {
            ImageConvertOptions options = new ImageConvertOptions();
            // Rotation angle in degrees (positive = clockwise)
            options.setRotateAngle(90);
            // Background color for empty areas after rotation
            options.setBackgroundColor(Color.WHITE);
            // Preserve original metadata (EXIF, DPI, etc.)
            options.setPreserveMetadata(true);
            // Optional: for large images you can limit memory usage
            options.setQuality(90); // JPEG quality (0-100)

handler.convert(inputPath, outputPath, options);
            System.out.println("Image rotated successfully: " + outputPath);
        } catch (Exception e) {
            System.err.println("Error during image rotation:");
            e.printStackTrace();
        }
    }
}

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

旋转参数:选项和设置

SDK 提供了多种选项来微调旋转过程。

  • Rotate Angle - 确定图像旋转的角度(以度为单位)。正值表示顺时针旋转。
options.setRotateAngle(90);
  • 背景颜色 - 设置旋转后出现的空白角落的填充颜色。使用任意 java.awt.Color 值。

  • 保留元数据 - 启用后,EXIF 数据、DPI 以及其他元数据将保留在输出文件中。有关更多详细信息,请参阅 ImageConvertOptions API。

  • 质量 - 控制 JPEG 压缩质量 (0‑100)。更高的值保留更多细节,但会增加文件大小。

根据您的应用程序需求调整这些设置,无论您需要无损的 PNG 输出还是高质量的 JPG 结果。

结论

在 Java 中旋转图像非常简单,只需使用 Conholdate.Total for Java。本指南将带您完成所需的设置、详细的逐步实现以及关键的配置选项,帮助您控制旋转角度、背景、元数据保留和输出质量。请记得为生产部署获取正式许可证;您可以在 https://purchase.conholdate.com/pricing/total/family/ 查看定价选项,或在 https://purchase.conholdate.com/temporary-license/ 获取用于测试的临时许可证。集成 SDK 后,您可以在任何基于 Java 的工作流中添加可靠的图像旋转功能。

常见问题

  • 如何在 Java 中使用 Conholdate.Total 旋转图像文件?
    使用 ImageConvertOptions 类设置所需的旋转角度,然后像上面的示例中那样调用 handler.convert(inputPath, outputPath, options)。

  • 我可以使用相同的代码旋转 PNG 和 JPG 图像吗?
    是的,SDK 会自动检测源格式。只需在输入路径中提供正确的文件扩展名,相同的代码即可同时适用于 PNG 和 JPG。

  • 有哪些选项可以自定义旋转过程?
    您可以调整旋转角度、背景颜色、输出质量,并选择是否保留元数据。有关完整列表,请参阅 ImageConvertOptions API。

  • 在生产环境中使用此功能是否需要许可证?
    在生产环境中使用需要有效许可证。可在 https://purchase.conholdate.com/temporary-license/ 获取用于评估的临时许可证,或在 https://purchase.conholdate.com/pricing/total/family/ 查看完整的定价详情。

阅读更多