<?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>grayscale conversion on Conholdate Blog</title>
    <link>https://blog-qa.conholdate.com/fa/tag/grayscale-conversion/</link>
    <description>Recent content in grayscale conversion on Conholdate Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>fa</language>
    <lastBuildDate>Tue, 18 Aug 2026 22:34:56 +0000</lastBuildDate><atom:link href="https://blog-qa.conholdate.com/fa/tag/grayscale-conversion/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>تبدیل تصویر به مقیاس خاکستری در جاوا</title>
      <link>https://blog-qa.conholdate.com/fa/total/convert-image-to-grayscale-in-java/</link>
      <pubDate>Tue, 18 Aug 2026 22:34:56 +0000</pubDate>
      
      <guid>https://blog-qa.conholdate.com/fa/total/convert-image-to-grayscale-in-java/</guid>
      <description>نحوه تبدیل تصاویر به مقیاس خاکستری در جاوا با استفاده از Conholdate.Total for Java SDK را بیاموزید. راهنمای گام‌به‌گام، مثال کد و نکات عملکردی برای توسعه‌دهندگان.</description>
      <content:encoded><![CDATA[<p>ایجاد نسخه‌های خاکستری تصاویر یک نیاز رایج برای تصویرهای کوچک، دارایی‌های آماده چاپ و سازگاری بصری در سراسر پلتفرم‌ها است. <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> یک SDK قدرتمند است که فرآیند تبدیل تصویر به خاکستری در جاوا را ساده می‌کند و با یک فراخوانی API، بسیاری از فرمت‌ها را مدیریت می‌نماید. در این راهنما، تنظیمات مورد نیاز را مشاهده خواهید کرد، کد را گام به گام بررسی می‌کنید، گزینه‌های پیکربندی را بررسی می‌نمایید و نکات عملکردی برای فایل‌های بزرگ را می‌آموزید.</p>
<h2 id="راهاندازی-conholdatetotal-برای-java">راه‌اندازی Conholdate.Total برای Java</h2>
<p>قبل از شروع، مطمئن شوید که موارد زیر را دارید:</p>
<ul>
<li>جاوا 8 یا جدیدتر نصب شده باشد.</li>
<li>Maven یا Gradle برای مدیریت وابستگی‌ها.</li>
<li>دسترسی به صفحه دانلود Conholdate.Total for Java.</li>
</ul>
<p>مخزن Maven Conholdate و وابستگی SDK را به <code>pom.xml</code> خود اضافه کنید:</p>
<!-- raw HTML omitted -->
<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><!-- raw HTML omitted -->
<p>آخرین باینری‌های SDK را از <a href="https://releases.conholdate.com/total/java/">صفحه دانلود</a> دریافت کنید. پس از رفع وابستگی‌ها، آماده‌اید کدی بنویسید که تصاویر را به خاکستری تبدیل می‌کند.</p>
<h2 id="تبدیل-تصویر-به-مقیاس-خاکستری-در-جاوا-راهنمای-گام-به-گام">تبدیل تصویر به مقیاس خاکستری در جاوا: راهنمای گام به گام</h2>
<h3 id="مرحله-1-بارگذاری-تصویر-منبع">مرحله 1: بارگذاری تصویر منبع</h3>
<p>ابتدا، فایل ورودی را با <code>Image.load()</code> بارگذاری کنید و نتیجه را به <code>RasterCachedImage</code> تبدیل کنید، که روش‌های مرتبط با مقیاس خاکستری را در دسترس می‌گذارد.</p>
<!-- raw HTML omitted -->
<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>com<span style="color:#f92672">.</span><span style="color:#a6e22e">aspose</span><span style="color:#f92672">.</span><span style="color:#a6e22e">imaging</span><span style="color:#f92672">.</span><span style="color:#a6e22e">Image</span> image <span style="color:#f92672">=</span> com<span style="color:#f92672">.</span><span style="color:#a6e22e">aspose</span><span style="color:#f92672">.</span><span style="color:#a6e22e">imaging</span><span style="color:#f92672">.</span><span style="color:#a6e22e">Image</span><span style="color:#f92672">.</span><span style="color:#a6e22e">load</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;color.jpg&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>com<span style="color:#f92672">.</span><span style="color:#a6e22e">aspose</span><span style="color:#f92672">.</span><span style="color:#a6e22e">imaging</span><span style="color:#f92672">.</span><span style="color:#a6e22e">RasterCachedImage</span> rasterCachedImage <span style="color:#f92672">=</span> <span style="color:#f92672">(</span>com<span style="color:#f92672">.</span><span style="color:#a6e22e">aspose</span><span style="color:#f92672">.</span><span style="color:#a6e22e">imaging</span><span style="color:#f92672">.</span><span style="color:#a6e22e">RasterCachedImage</span><span style="color:#f92672">)</span> image<span style="color:#f92672">;</span>
</span></span></code></pre></div><!-- raw HTML omitted -->
<p><code>Image</code> و <code>RasterCachedImage</code> در <a href="https://reference.conholdate.com/java/">مرجع API</a> مستند شده‌اند.</p>
<h3 id="مرحله-۲-ذخیرهسازی-موقت-دادههای-تصویر">مرحله ۲: ذخیره‌سازی موقت داده‌های تصویر</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><span style="color:#66d9ef">if</span> <span style="color:#f92672">(!</span>rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">isCached</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>    rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">cacheData</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><p>رد کردن این بررسی بر روی یک تصویر بزرگ می‌تواند باعث شود که API در طول تبدیل داده‌های پیکسلی را از دیسک دوباره بخواند، که کندتر است.</p>
<h3 id="مرحله-۳-اعمال-تبدیل-خاکستری">مرحله ۳: اعمال تبدیل خاکستری</h3>
<p>در تصویر کشیده‌شده، <code>grayscale()</code> را فراخوانی کنید. این کار هر پیکسل را بر اساس روشنایی به سایهٔ معادل خاکستری تبدیل می‌کند.</p>
<!-- raw HTML omitted -->
<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>rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">grayscale</span><span style="color:#f92672">();</span>
</span></span></code></pre></div><!-- raw HTML omitted -->
<h3 id="مرحله-4-ذخیره-خروجی">مرحله 4: ذخیره خروجی</h3>
<p>متد <code>save()</code> را با مسیر خروجی مورد نظر فراخوانی کنید. قالب خروجی از پسوند فایل استخراج می‌شود، بنابراین ذخیره به صورت <code>.jpg</code>، <code>.png</code>، <code>.bmp</code> یا <code>.tiff</code> آن قالب را تولید می‌کند.</p>
<!-- raw HTML omitted -->
<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>rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">save</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;grayscaled.jpg&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><!-- raw HTML omitted -->
<h3 id="مرحله-5-مدیریت-خطاها-و-آزادسازی-منابع">مرحله 5: مدیریت خطاها و آزادسازی منابع</h3>
<p>تبدیل را در یک بلوک try/catch بپیچید و پس از اتمام، نمونه <code>Image</code> را آزاد کنید، زیرا منابع بومی را نگه می‌دارد.</p>
<!-- raw HTML omitted -->
<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>com<span style="color:#f92672">.</span><span style="color:#a6e22e">aspose</span><span style="color:#f92672">.</span><span style="color:#a6e22e">imaging</span><span style="color:#f92672">.</span><span style="color:#a6e22e">Image</span> image <span style="color:#f92672">=</span> <span style="color:#66d9ef">null</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">try</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    image <span style="color:#f92672">=</span> com<span style="color:#f92672">.</span><span style="color:#a6e22e">aspose</span><span style="color:#f92672">.</span><span style="color:#a6e22e">imaging</span><span style="color:#f92672">.</span><span style="color:#a6e22e">Image</span><span style="color:#f92672">.</span><span style="color:#a6e22e">load</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;color.jpg&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>    com<span style="color:#f92672">.</span><span style="color:#a6e22e">aspose</span><span style="color:#f92672">.</span><span style="color:#a6e22e">imaging</span><span style="color:#f92672">.</span><span style="color:#a6e22e">RasterCachedImage</span> rasterCachedImage <span style="color:#f92672">=</span> <span style="color:#f92672">(</span>com<span style="color:#f92672">.</span><span style="color:#a6e22e">aspose</span><span style="color:#f92672">.</span><span style="color:#a6e22e">imaging</span><span style="color:#f92672">.</span><span style="color:#a6e22e">RasterCachedImage</span><span style="color:#f92672">)</span> image<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> <span style="color:#f92672">(!</span>rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">isCached</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>        rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">cacheData</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>    rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">grayscale</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>    rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">save</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;grayscaled.jpg&#34;</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:#66d9ef">catch</span> <span style="color:#f92672">(</span>Exception e<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><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;Conversion failed: &#34;</span> <span style="color:#f92672">+</span> e<span style="color:#f92672">.</span><span style="color:#a6e22e">getMessage</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:#66d9ef">finally</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> <span style="color:#f92672">(</span>image <span style="color:#f92672">!=</span> <span style="color:#66d9ef">null</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>        image<span style="color:#f92672">.</span><span style="color:#a6e22e">dispose</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><!-- raw HTML omitted -->
<h2 id="مثال-کامل-کد-تبدیل-تصویر-به-مقیاس-خاکستری-در-جاوا---پیادهسازی-دقیق">مثال کامل کد: تبدیل تصویر به مقیاس خاکستری در جاوا - پیاده‌سازی دقیق</h2>
<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><span style="color:#66d9ef">public</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">GrayscaleImageConversion</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>        <span style="color:#75715e">// Load an image in an instance of Image class
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        com<span style="color:#f92672">.</span><span style="color:#a6e22e">aspose</span><span style="color:#f92672">.</span><span style="color:#a6e22e">imaging</span><span style="color:#f92672">.</span><span style="color:#a6e22e">Image</span> image <span style="color:#f92672">=</span> com<span style="color:#f92672">.</span><span style="color:#a6e22e">aspose</span><span style="color:#f92672">.</span><span style="color:#a6e22e">imaging</span><span style="color:#f92672">.</span><span style="color:#a6e22e">Image</span><span style="color:#f92672">.</span><span style="color:#a6e22e">load</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;color.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>
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Cast the image to RasterCachedImage and check if image is cached
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            com<span style="color:#f92672">.</span><span style="color:#a6e22e">aspose</span><span style="color:#f92672">.</span><span style="color:#a6e22e">imaging</span><span style="color:#f92672">.</span><span style="color:#a6e22e">RasterCachedImage</span> rasterCachedImage <span style="color:#f92672">=</span> <span style="color:#f92672">(</span>com<span style="color:#f92672">.</span><span style="color:#a6e22e">aspose</span><span style="color:#f92672">.</span><span style="color:#a6e22e">imaging</span><span style="color:#f92672">.</span><span style="color:#a6e22e">RasterCachedImage</span><span style="color:#f92672">)</span> image<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">if</span> <span style="color:#f92672">(!</span>rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">isCached</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:#75715e">// Cache image if not already cached
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>                rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">cacheData</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></span><span style="display:flex;"><span><span style="color:#75715e">// Transform image to its grayscale representation
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">grayscale</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Save the image
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">save</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;grayscaled.jpg&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><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;Grayscale image saved to: grayscaled.jpg&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</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;Conversion failed: &#34;</span> <span style="color:#f92672">+</span> e<span style="color:#f92672">.</span><span style="color:#a6e22e">getMessage</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 style="color:#66d9ef">finally</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            image<span style="color:#f92672">.</span><span style="color:#a6e22e">dispose</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> این مثال کد عملکرد اصلی را نشان می‌دهد. قبل از استفاده از آن در پروژه خود، اطمینان حاصل کنید که مسیرهای فایل (<code>color.jpg</code>, <code>grayscaled.jpg</code> و غیره) را به مسیرهای واقعی خود به‌روزرسانی کنید، بررسی کنید که تمام وابستگی‌های مورد نیاز به‌درستی نصب شده‌اند و به‌طور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به <a href="https://docs.conholdate.com/java/">مستندات رسمی</a> مراجعه کنید یا برای دریافت کمک به <a href="https://forum.conholdate.com/c/total/5">تیم پشتیبانی</a> مراجعه نمایید.</p>
</blockquote>
<h2 id="پیکربندی-تبدیل-به-مقیاس-خاکستری">پیکربندی تبدیل به مقیاس خاکستری</h2>
<p>چند نکتهٔ عملی دربارهٔ جریان کار بالا:</p>
<ul>
<li><strong>کشینگ شرطی است</strong> - همیشه <code>cacheData()</code> را با یک بررسی <code>isCached()</code> محافظت کنید. فراخوانی آن به‌صورت بدون شرط بر روی تصویری که قبلاً کش شده است، بی‌ضرر اما هدررفت‌گر است.</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><span style="color:#66d9ef">if</span> <span style="color:#f92672">(!</span>rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">isCached</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>    rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">cacheData</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><ul>
<li><strong>قالب خروجی بر اساس پسوند فایل تعیین می‌شود</strong> - <code>save()</code> قالب خروجی را بر اساس پسوندی که می‌گذارید انتخاب می‌کند، بنابراین می‌توانید بین <a href="https://docs.fileformat.com/image/jpeg/">JPEG</a>، <a href="https://docs.fileformat.com/image/bmp/">BMP</a>، PNG و TIFF صرفاً با تغییر مسیر خروجی تبدیل کنید.</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>  rasterCachedImage<span style="color:#f92672">.</span><span style="color:#a6e22e">save</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;grayscaled.png&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><ul>
<li><strong>آزادسازی منابع بومی</strong> - <code>Image</code> منابع بومی را می‌پیچد، بنابراین <code>dispose()</code> را فراخوانی کنید (یا از یک بلوک try-with-resources استفاده کنید) وقتی کارتان با آن تمام شد تا از نشت حافظه جلوگیری کنید.</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>  image<span style="color:#f92672">.</span><span style="color:#a6e22e">dispose</span><span style="color:#f92672">();</span>
</span></span></code></pre></div><p>تمام این اعضا بخشی از <code>RasterCachedImage</code> و <code>Image</code> هستند و در <a href="https://reference.conholdate.com/java/">مرجع API</a> توصیف شده‌اند.</p>
<h2 id="ملاحظات-عملکرد-برای-تبدیل-تصویر-بزرگ-به-مقیاس-خاکستری">ملاحظات عملکرد برای تبدیل تصویر بزرگ به مقیاس خاکستری</h2>
<p>هنگام پردازش تصاویر با وضوح بالا یا دسته‌ای، این نکات را در نظر بگیرید:</p>
<ol>
<li><strong>یک بار کش کنید، داده‌های کش‌شده را دوباره استفاده کنید</strong> - قبل از فراخوانی <code>cacheData()</code>، <code>isCached()</code> را بررسی کنید تا داده‌های پیکسل را که قبلاً در حافظه دارید دوباره کش نکنید.</li>
<li><strong>به‌سرعت آزاد کنید</strong> - به محض اتمام کار با یک تصویر، <code>image.dispose()</code> را فراخوانی کنید (یا از try-with-resources استفاده کنید) تا حافظه بومی به سرعت آزاد شود، به‌ویژه در حلقه‌های دسته‌ای.</li>
<li><strong>به‌صورت متوالی برای فایل‌های بسیار بزرگ پردازش کنید</strong> - منابع TIFF یا BMP با وضوح بالا می‌توانند پس از کش شدن حافظه قابل‌توجهی مصرف کنند؛ از نگه داشتن تعداد زیادی تصویر بزرگ در حافظه به‌طور همزمان جلوگیری کنید.</li>
<li><strong>تبدیل‌ها را به‌دقت به‌صورت موازی اجرا کنید</strong> - از <code>ExecutorService</code> جاوا برای پردازش همزمان چند تصویر کوچک استفاده کنید، اما اندازه هپ را نظارت کنید تا از بروز خطاهای OOM هنگام کار با تصاویر بزرگ جلوگیری کنید.</li>
</ol>
<p>به‌کارگیری این استراتژی‌ها به حفظ عملکرد واکنش‌گرا حتی با منابع بزرگ <a href="https://docs.fileformat.com/image/tiff/">TIFF</a> یا BMP کمک می‌کند.</p>
<h2 id="نتیجهگیری">نتیجه‌گیری</h2>
<p>تبدیل تصاویر به مقیاس خاکستری در Java به‌سادگی با <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> انجام می‌شود. با پیروی از مراحل بالا می‌توانید یک تصویر را بارگذاری کنید، داده‌های پیکسل آن را در کش ذخیره کنید، <code>grayscale()</code> را فراخوانی کنید و نتیجه را به‌صورت <a href="https://docs.fileformat.com/image/png/">PNG</a>، JPEG، BMP یا TIFF تنها با چند خط کد ذخیره کنید. به‌خاطر داشته باشید برای استفاده در تولید، یک لایسنس مناسب تهیه کنید؛ جزئیات قیمت‌گذاری در <a href="https://purchase.conholdate.com/pricing/total/family/">صفحه قیمت‌گذاری</a> موجود است و می‌توانید لایسنس موقت را از <a href="https://purchase.conholdate.com/temporary-license/">صفحه لایسنس موقت</a> دریافت کنید. امروز تبدیل به‌مقیاس خاکستری را یکپارچه کنید و سازگاری بصری برنامه‌های Java خود را ارتقا دهید.</p>
<h2 id="سوالات-متداول">سوالات متداول</h2>
<ul>
<li>
<p><strong>چگونه می‌توانم یک تصویر را در جاوا با استفاده از Conholdate.Total به مقیاس خاکستری تبدیل کنم؟</strong><br>
فایل را با <code>Image.load()</code> بارگذاری کنید، آن را به <code>RasterCachedImage</code> تبدیل کنید، در صورت نیاز داده‌ها را با <code>cacheData()</code> کش کنید، سپس <code>grayscale()</code> را فراخوانی کنید و پس از آن <code>save()</code> را اجرا کنید. مثال کامل در قطعه کد بالا نشان داده شده است.</p>
</li>
<li>
<p><strong>آیا قبل از تبدیل باید تصویر را کش کنم؟</strong><br>
بله، ابتدا <code>isCached()</code> را بررسی کنید و اگر مقدار false برگرداند <code>cacheData()</code> را فراخوانی کنید تا داده‌های پیکسل قبل از اجرای تبدیل به خاکستری در حافظه موجود باشند.</p>
</li>
<li>
<p><strong>کدام فرمت‌های تصویر برای تبدیل به مقیاس خاکستری پشتیبانی می‌شوند؟</strong><br>
PNG، JPEG، BMP، TIFF و بسیاری دیگر پشتیبانی می‌شوند. فهرست کامل در <a href="https://reference.conholdate.com/java/">مرجع API</a> موجود است.</p>
</li>
<li>
<p><strong>کجا می‌توانم یک لایسنس موقت برای تست دریافت کنم؟</strong><br>
یک لایسنس موقت در <a href="https://purchase.conholdate.com/temporary-license/">صفحه لایسنس موقت</a> ارائه می‌شود.</p>
</li>
</ul>
<h2 id="بیشتر-بخوانید">بیشتر بخوانید</h2>
<ul>
<li><a href="https://blog.conholdate.com/fa/total/convert-pdf-to-grayscale-in-java/">تبدیل PDF به مقیاس خاکستری در Java</a></li>
<li><a href="https://blog.conholdate.com/fa/total/convert-cdr-to-png-in-java/">تبدیل CDR به PNG در Java</a></li>
<li><a href="https://blog.conholdate.com/fa/total/convert-cad-to-pdf-in-java/">تبدیل CAD به PDF در Java</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
