<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>image rotation on Conholdate Blog</title>
    <link>https://blog-qa.conholdate.com/zh/tag/image-rotation/</link>
    <description>Recent content in image rotation on Conholdate Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh</language>
    <lastBuildDate>Wed, 07 Oct 2026 17:53:30 +0000</lastBuildDate><atom:link href="https://blog-qa.conholdate.com/zh/tag/image-rotation/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>在 Java 中旋转图像</title>
      <link>https://blog-qa.conholdate.com/zh/total/rotate-image-in-java/</link>
      <pubDate>Wed, 07 Oct 2026 17:53:30 +0000</pubDate>
      
      <guid>https://blog-qa.conholdate.com/zh/total/rotate-image-in-java/</guid>
      <description>了解如何在 Java 中使用 Conholdate.Total for Java 旋转 PNG 和 JPG 图像。本指南将介绍设置、代码示例和旋转选项。</description>
      <content:encoded><![CDATA[<p>以编程方式旋转图像是构建预览生成器、照片编辑器或文档工作流时的常见需求。<a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> 提供了强大的 SDK，使得在 Java 应用程序中进行图像处理变得简便。在本指南中，您将学习如何旋转 <a href="https://docs.fileformat.com/image/png/">PNG</a> 和 <a href="https://docs.fileformat.com/image/jpg/">JPG</a> 文件，配置旋转参数，并在保持高图像质量的同时保留元数据。</p>
<h2 id="环境准备---前提条件和设置">环境准备 - 前提条件和设置</h2>
<p>在开始之前，请确保您具备以下条件：</p>
<ul>
<li>已安装 Java 17 或更高版本。</li>
<li>IDE，例如 IntelliJ IDEA 或 Eclipse。</li>
<li>Maven 用于依赖管理。</li>
</ul>
<p>将 Conholdate Maven 仓库和 SDK 依赖添加到您的 <code>pom.xml</code>：</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#f92672">&lt;repositories&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;repository&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;id&gt;</span>conholdate-repo<span style="color:#f92672">&lt;/id&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;name&gt;</span>Conholdate Maven Repository<span style="color:#f92672">&lt;/name&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;url&gt;</span>https://repository.conholdate.com/repo/<span style="color:#f92672">&lt;/url&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;/repository&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/repositories&gt;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;dependency&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;groupId&gt;</span>com.conholdate<span style="color:#f92672">&lt;/groupId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;artifactId&gt;</span>conholdate-total<span style="color:#f92672">&lt;/artifactId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;version&gt;</span>24.9<span style="color:#f92672">&lt;/version&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;type&gt;</span>pom<span style="color:#f92672">&lt;/type&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/dependency&gt;</span>
</span></span></code></pre></div><p>从官方下载页面下载最新的 SDK 二进制文件： <a href="https://releases.conholdate.com/total/java/">Conholdate.Total for Java 下载</a>。一旦解决了依赖关系，您就可以编写旋转图像的代码了。</p>
<h2 id="在-java-中旋转图像分步演练">在 Java 中旋转图像：分步演练</h2>
<h3 id="步骤-1加载源和目标路径">步骤 1：加载源和目标路径</h3>
<p>定义输入和输出文件的位置。SDK 支持 PNG 和 JPG 两种格式。</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>String inputPath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;input.jpg&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>String outputPath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;output_rotated.jpg&#34;</span><span style="color:#f92672">;</span>
</span></span></code></pre></div><h3 id="步骤-2初始化转换处理程序和选项">步骤 2：初始化转换处理程序和选项</h3>
<p>创建驱动转换过程的核心对象。</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>ConversionHandler handler <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ConversionHandler<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>ImageConvertOptions options <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ImageConvertOptions<span style="color:#f92672">();</span>
</span></span></code></pre></div><h3 id="步骤-3设置旋转角度和背景颜色">步骤 3：设置旋转角度和背景颜色</h3>
<p>指定将图像旋转多少度以及为空白角落填充的颜色。</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>options<span style="color:#f92672">.</span><span style="color:#a6e22e">setRotateAngle</span><span style="color:#f92672">(</span>90<span style="color:#f92672">);</span>               <span style="color:#75715e">// Rotate 90 degrees clockwise
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>options<span style="color:#f92672">.</span><span style="color:#a6e22e">setBackgroundColor</span><span style="color:#f92672">(</span>Color<span style="color:#f92672">.</span><span style="color:#a6e22e">WHITE</span><span style="color:#f92672">);</span>  <span style="color:#75715e">// Fill empty space with white
</span></span></span></code></pre></div><h3 id="第4步配置其他参数">第4步：配置其他参数</h3>
<p>在输出为 JPG 时，保留原始元数据并定义 <a href="https://docs.fileformat.com/image/jpeg/">JPEG</a> 质量。</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>options<span style="color:#f92672">.</span><span style="color:#a6e22e">setPreserveMetadata</span><span style="color:#f92672">(</span><span style="color:#66d9ef">true</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>options<span style="color:#f92672">.</span><span style="color:#a6e22e">setQuality</span><span style="color:#f92672">(</span>90<span style="color:#f92672">);</span> <span style="color:#75715e">// JPEG quality (0‑100)
</span></span></span></code></pre></div><h3 id="步骤-5执行旋转">步骤 5：执行旋转</h3>
<p>调用 <code>convert</code> 方法来应用旋转并写入结果。</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>handler<span style="color:#f92672">.</span><span style="color:#a6e22e">convert</span><span style="color:#f92672">(</span>inputPath<span style="color:#f92672">,</span> outputPath<span style="color:#f92672">,</span> options<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>System<span style="color:#f92672">.</span><span style="color:#a6e22e">out</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Image rotated successfully: &#34;</span> <span style="color:#f92672">+</span> outputPath<span style="color:#f92672">);</span>
</span></span></code></pre></div><p>有关 <code>ConversionHandler</code> 类的更多详细信息，请参阅<a href="https://reference.conholdate.com/java/com/groupdocs/conversion/ConversionHandler.html">官方 API 参考文档</a>。</p>
<h2 id="完整代码示例在-java-中使用-conholdatetotal-旋转图像">完整代码示例：在 Java 中使用 Conholdate.Total 旋转图像</h2>
<p>以下示例演示了旋转图像文件的完整工作流。</p>
<p>本示例演示如何将 JPG 图像旋转 90 度并保存结果。</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.conversion.ConversionHandler<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.conversion.options.convert.ImageConvertOptions<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> java.awt.Color<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">public</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">RotateImageExample</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">public</span> <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">void</span> <span style="color:#a6e22e">main</span><span style="color:#f92672">(</span>String<span style="color:#f92672">[]</span> args<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>        String inputPath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;input.jpg&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>        String outputPath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;output_rotated.jpg&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">try</span> <span style="color:#f92672">(</span>ConversionHandler handler <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ConversionHandler<span style="color:#f92672">())</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            ImageConvertOptions options <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ImageConvertOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Rotation angle in degrees (positive = clockwise)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            options<span style="color:#f92672">.</span><span style="color:#a6e22e">setRotateAngle</span><span style="color:#f92672">(</span>90<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Background color for empty areas after rotation
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            options<span style="color:#f92672">.</span><span style="color:#a6e22e">setBackgroundColor</span><span style="color:#f92672">(</span>Color<span style="color:#f92672">.</span><span style="color:#a6e22e">WHITE</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Preserve original metadata (EXIF, DPI, etc.)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            options<span style="color:#f92672">.</span><span style="color:#a6e22e">setPreserveMetadata</span><span style="color:#f92672">(</span><span style="color:#66d9ef">true</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Optional: for large images you can limit memory usage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            options<span style="color:#f92672">.</span><span style="color:#a6e22e">setQuality</span><span style="color:#f92672">(</span>90<span style="color:#f92672">);</span> <span style="color:#75715e">// JPEG quality (0-100)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span>handler<span style="color:#f92672">.</span><span style="color:#a6e22e">convert</span><span style="color:#f92672">(</span>inputPath<span style="color:#f92672">,</span> outputPath<span style="color:#f92672">,</span> options<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            System<span style="color:#f92672">.</span><span style="color:#a6e22e">out</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Image rotated successfully: &#34;</span> <span style="color:#f92672">+</span> outputPath<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span> <span style="color:#66d9ef">catch</span> <span style="color:#f92672">(</span>Exception e<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            System<span style="color:#f92672">.</span><span style="color:#a6e22e">err</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Error during image rotation:&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            e<span style="color:#f92672">.</span><span style="color:#a6e22e">printStackTrace</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><blockquote>
<p><strong>注意：</strong> 此代码示例演示了核心功能。在将其用于项目之前，请确保更新所有文件路径和配置值以匹配实际环境，确认已正确安装所有必需的依赖项，并在开发环境中彻底测试。如果遇到任何问题，请参阅<a href="https://docs.conholdate.com/java/">官方文档</a>或联系<a href="https://forum.conholdate.com/c/total/5">支持团队</a>获取帮助。</p>
</blockquote>
<h2 id="旋转参数选项和设置">旋转参数：选项和设置</h2>
<p>SDK 提供了多种选项来微调旋转过程。</p>
<ul>
<li><strong>Rotate Angle</strong> - 确定图像旋转的角度（以度为单位）。正值表示顺时针旋转。</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>options<span style="color:#f92672">.</span><span style="color:#a6e22e">setRotateAngle</span><span style="color:#f92672">(</span>90<span style="color:#f92672">);</span>
</span></span></code></pre></div><ul>
<li>
<p><strong>背景颜色</strong> - 设置旋转后出现的空白角落的填充颜色。使用任意 <code>java.awt.Color</code> 值。</p>
</li>
<li>
<p><strong>保留元数据</strong> - 启用后，<a href="https://docs.fileformat.com/image/exif/">EXIF</a> 数据、DPI 以及其他元数据将保留在输出文件中。有关更多详细信息，请参阅 <a href="https://reference.conholdate.com/java/com/groupdocs/conversion/options/convert/ImageConvertOptions.html">ImageConvertOptions API</a>。</p>
</li>
<li>
<p><strong>质量</strong> - 控制 JPEG 压缩质量 (0‑100)。更高的值保留更多细节，但会增加文件大小。</p>
</li>
</ul>
<p>根据您的应用程序需求调整这些设置，无论您需要无损的 PNG 输出还是高质量的 JPG 结果。</p>
<h2 id="结论">结论</h2>
<p>在 Java 中旋转图像非常简单，只需使用 <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a>。本指南将带您完成所需的设置、详细的逐步实现以及关键的配置选项，帮助您控制旋转角度、背景、元数据保留和输出质量。请记得为生产部署获取正式许可证；您可以在 <a href="https://purchase.conholdate.com/pricing/total/family/">https://purchase.conholdate.com/pricing/total/family/</a> 查看定价选项，或在 <a href="https://purchase.conholdate.com/temporary-license/">https://purchase.conholdate.com/temporary-license/</a> 获取用于测试的临时许可证。集成 SDK 后，您可以在任何基于 Java 的工作流中添加可靠的图像旋转功能。</p>
<h2 id="常见问题">常见问题</h2>
<ul>
<li>
<p><strong>如何在 Java 中使用 Conholdate.Total 旋转图像文件？</strong><br>
使用 <code>ImageConvertOptions</code> 类设置所需的旋转角度，然后像上面的示例中那样调用 <code>handler.convert(inputPath, outputPath, options)</code>。</p>
</li>
<li>
<p><strong>我可以使用相同的代码旋转 PNG 和 JPG 图像吗？</strong><br>
是的，SDK 会自动检测源格式。只需在输入路径中提供正确的文件扩展名，相同的代码即可同时适用于 PNG 和 JPG。</p>
</li>
<li>
<p><strong>有哪些选项可以自定义旋转过程？</strong><br>
您可以调整旋转角度、背景颜色、输出质量，并选择是否保留元数据。有关完整列表，请参阅 <a href="https://reference.conholdate.com/java/com/groupdocs/conversion/options/convert/ImageConvertOptions.html">ImageConvertOptions API</a>。</p>
</li>
<li>
<p><strong>在生产环境中使用此功能是否需要许可证？</strong><br>
在生产环境中使用需要有效许可证。可在 <a href="https://purchase.conholdate.com/temporary-license/">https://purchase.conholdate.com/temporary-license/</a> 获取用于评估的临时许可证，或在 <a href="https://purchase.conholdate.com/pricing/total/family/">https://purchase.conholdate.com/pricing/total/family/</a> 查看完整的定价详情。</p>
</li>
</ul>
<h2 id="阅读更多">阅读更多</h2>
<ul>
<li><a href="https://blog.conholdate.com/zh/total/convert-onenote-to-image-in-java/">将 Onenote 转换为 Java 中的图像</a></li>
<li><a href="https://blog.conholdate.com/zh/total/convert-excel-to-image-in-java/">将 Excel 转换为 Java 中的图像</a></li>
<li><a href="https://blog.conholdate.com/zh/total/convert-word-to-image-in-java/">将 Word 转换为 Java 中的图像</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
