<?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 watermarking on Document Processing REST APIs | GroupDocs Cloud</title>
    <link>https://blog-qa.groupdocs.cloud/ar/tag/image-watermarking/</link>
    <description>Recent content in image watermarking on Document Processing REST APIs | GroupDocs Cloud</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ar</language>
    <lastBuildDate>Wed, 23 Sep 2026 13:04:19 +0000</lastBuildDate><atom:link href="https://blog-qa.groupdocs.cloud/ar/tag/image-watermarking/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>إضافة نص فوق صورة GIF باستخدام REST في Java</title>
      <link>https://blog-qa.groupdocs.cloud/ar/watermark/add-text-overlay-to-gif-using-rest-in-java/</link>
      <pubDate>Wed, 23 Sep 2026 13:04:19 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/ar/watermark/add-text-overlay-to-gif-using-rest-in-java/</guid>
      <description>تعلم كيفية إضافة تغطية نصية إلى ملفات GIF باستخدام GroupDocs.Watermark Cloud SDK for Java via REST API. يتضمن الكود، وcURL، وخطوات الإعداد الآن. ابدأ بسرعة.</description>
      <content:encoded><![CDATA[<p>إضافة تسميات توضيحية ديناميكية أو ترجمات أو رسائل ترويجية إلى ملفات GIF المتحركة هي حاجة شائعة للتطبيقات الحديثة على الويب والهواتف المحمولة. <a href="https://products.groupdocs.cloud/watermark/java/">GroupDocs.Watermark Cloud SDK for Java</a> يوفر مكتبة قوية تعتمد على REST تجعل هذه المهمة بسيطة. في هذا الدليل ستتعلم كيفية <strong>إضافة تراكب نصي إلى <a href="https://docs.fileformat.com/image/gif/">GIF</a> باستخدام REST في Java</strong>، وسترى تنفيذًا كاملاً بلغة Java، وتستكشف أوامر cURL المكافئة، وتفهم خطوات الإعداد المطلوبة.</p>
<h2 id="إضافة-نص-فوق-gif-باستخدام-rest-في-java---مثال-على-الكود">إضافة نص فوق GIF باستخدام REST في Java - مثال على الكود</h2>
<p>يوضح هذا المثال كيفية تكوين علامة مائية نصية وتطبيقها على كل إطار من ملف GIF.</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.watermark.cloud.api.WatermarkApi<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.client.ApiException<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.client.Configuration<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.AddWatermarkRequest<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.AddWatermarkResponse<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.FileInfo<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.OutputFileInfo<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.TextWatermarkOptions<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.HorizontalAlignment<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.VerticalAlignment<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">AddTextOverlayToGif</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">// Initialize API configuration (replace with your actual clientId and clientSecret)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<span style="color:#f92672">(</span><span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span><span style="color:#f92672">,</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        WatermarkApi watermarkApi <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> WatermarkApi<span style="color:#f92672">(</span>config<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Prepare input file information
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        FileInfo inputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input.gif&#34;</span><span style="color:#f92672">);</span>          <span style="color:#75715e">// Path to the source GIF in the storage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setStorageName</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;MyStorage&#34;</span><span style="color:#f92672">);</span>       <span style="color:#75715e">// Optional: name of the storage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Prepare output file information
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        OutputFileInfo outputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> OutputFileInfo<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        outputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;output.gif&#34;</span><span style="color:#f92672">);</span>        <span style="color:#75715e">// Desired path for the watermarked GIF
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        outputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setStorageName</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;MyStorage&#34;</span><span style="color:#f92672">);</span>      <span style="color:#75715e">// Optional: name of the storage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Configure text watermark options
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        TextWatermarkOptions textOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> TextWatermarkOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setText</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Sample Watermark&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFontFamily</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Arial&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFontSize</span><span style="color:#f92672">(</span>24<span style="color:#f92672">.</span><span style="color:#a6e22e">0</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setColor</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;#FF0000&#34;</span><span style="color:#f92672">);</span>             <span style="color:#75715e">// Red color in HEX
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setOpacity</span><span style="color:#f92672">(</span>0<span style="color:#f92672">.</span><span style="color:#a6e22e">5</span><span style="color:#f92672">);</span>                 <span style="color:#75715e">// 50% opacity
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setRotationAngle</span><span style="color:#f92672">(</span>0<span style="color:#f92672">.</span><span style="color:#a6e22e">0</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setHorizontalAlignment</span><span style="color:#f92672">(</span>HorizontalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">CENTER</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setVerticalAlignment</span><span style="color:#f92672">(</span>VerticalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">MIDDLE</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setPageRange</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;1-&#34;</span><span style="color:#f92672">);</span>               <span style="color:#75715e">// Apply to all frames/pages
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Build the request
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        AddWatermarkRequest request <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> AddWatermarkRequest<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        request<span style="color:#f92672">.</span><span style="color:#a6e22e">setFileInfo</span><span style="color:#f92672">(</span>inputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        request<span style="color:#f92672">.</span><span style="color:#a6e22e">setOutputFileInfo</span><span style="color:#f92672">(</span>outputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        request<span style="color:#f92672">.</span><span style="color:#a6e22e">setOptions</span><span style="color:#f92672">(</span>textOptions<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">// Execute the request
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            AddWatermarkResponse response <span style="color:#f92672">=</span> watermarkApi<span style="color:#f92672">.</span><span style="color:#a6e22e">addWatermark</span><span style="color:#f92672">(</span>request<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;Watermark added successfully. Output file: &#34;</span> <span style="color:#f92672">+</span> response<span style="color:#f92672">.</span><span style="color:#a6e22e">getPath</span><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>ApiException 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 while adding watermark: &#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:#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.groupdocs.cloud/watermark/">الوثائق الرسمية</a> أو التواصل مع <a href="https://forum.groupdocs.cloud/c/watermark/29">فريق الدعم</a> للحصول على المساعدة.</p>
</blockquote>
<h2 id="إضافة-نص-فوق-gif-باستخدام-rest-api-عبر-curl">إضافة نص فوق GIF باستخدام REST API عبر cURL</h2>
<p>فيما يلي أوامر cURL التي تقوم بنفس العملية من الطرفية. توضح سير عمل REST الكامل: المصادقة، التحميل، إضافة العلامة المائية، والتنزيل.</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-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># 1. Obtain an access token</span>
</span></span><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/auth/token&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{&#34;client_id&#34;:&#34;YOUR_CLIENT_ID&#34;,&#34;client_secret&#34;:&#34;YOUR_CLIENT_SECRET&#34;}&#39;</span>
</span></span></code></pre></div><p>استبدل <code>YOUR_ACCESS_TOKEN</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-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># 2. Upload the source GIF to storage</span>
</span></span><span style="display:flex;"><span>curl -X PUT <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/input.gif&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/octet-stream&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     --data-binary @path/to/local/input.gif
</span></span></code></pre></div><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-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># 3. Add text overlay to the GIF</span>
</span></span><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/watermark/add&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;fileInfo&#34;: { &#34;filePath&#34;: &#34;input.gif&#34;, &#34;storageName&#34;: &#34;MyStorage&#34; },
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;outputFileInfo&#34;: { &#34;filePath&#34;: &#34;output.gif&#34;, &#34;storageName&#34;: &#34;MyStorage&#34; },
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;options&#34;: {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;text&#34;: &#34;Sample Watermark&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;fontFamily&#34;: &#34;Arial&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;fontSize&#34;: 24,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;color&#34;: &#34;#FF0000&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;opacity&#34;: 0.5,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;horizontalAlignment&#34;: &#34;Center&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;verticalAlignment&#34;: &#34;Middle&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;pageRange&#34;: &#34;1-&#34;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           }
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">         }&#39;</span>
</span></span></code></pre></div><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-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># 4. Download the watermarked GIF</span>
</span></span><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/output.gif&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -o path/to/local/output.gif
</span></span></code></pre></div><p>لمزيد من التفاصيل حول أجسام الطلبات وتنسيقات الاستجابة، راجع <a href="https://docs.groupdocs.cloud/watermark/">وثائق API الرسمية</a>.</p>
<h2 id="تحليل-إضافة-نص-كطبقة-فوق-gif-باستخدام-rest-في-java---كيف-يعمل">تحليل إضافة نص كطبقة فوق GIF باستخدام REST في Java - كيف يعمل</h2>
<ol>
<li><strong>تهيئة عميل API</strong> - <code>new Configuration(&quot;YOUR_CLIENT_ID&quot;, &quot;YOUR_CLIENT_SECRET&quot;)</code> ينشئ كائن تكوين يحتوي على بيانات الاعتماد الخاصة بك. يستخدم كائن <code>WatermarkApi</code> هذا التكوين لتوقيع كل طلب.</li>
</ol>
<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>Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<span style="color:#f92672">(</span><span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span><span style="color:#f92672">,</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>WatermarkApi watermarkApi <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> WatermarkApi<span style="color:#f92672">(</span>config<span style="color:#f92672">);</span>
</span></span></code></pre></div><ol start="2">
<li>
<p><strong>تحديد ملفات المصدر والوجهة</strong> - <code>FileInfo</code> و <code>OutputFileInfo</code> تخبر الخدمة بمكان قراءة ملف GIF الأصلي ومكان كتابة النتيجة. كلاهما يمكن أن يشير إلى اسم تخزين مخصص.</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>FileInfo inputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input.gif&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setStorageName</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;MyStorage&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div></li>
<li>
<p><strong>تكوين العلامة المائية النصية</strong> - <code>TextWatermarkOptions</code> يحتوي على جميع الخصائص البصرية: النص، الخط، الحجم، اللون، الشفافية، الدوران، والمحاذاة. ضبط <code>pageRange</code> إلى <code>&quot;1-&quot;</code> يضمن أن كل إطار من صورة GIF المتحركة يتلقى التراكب.</p>
</li>
</ol>
<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>TextWatermarkOptions textOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> TextWatermarkOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setText</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Sample Watermark&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFontFamily</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Arial&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFontSize</span><span style="color:#f92672">(</span>24<span style="color:#f92672">.</span><span style="color:#a6e22e">0</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setColor</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;#FF0000&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setOpacity</span><span style="color:#f92672">(</span>0<span style="color:#f92672">.</span><span style="color:#a6e22e">5</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setHorizontalAlignment</span><span style="color:#f92672">(</span>HorizontalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">CENTER</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setVerticalAlignment</span><span style="color:#f92672">(</span>VerticalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">MIDDLE</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setPageRange</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;1-&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><ol start="4">
<li><strong>إنشاء وإرسال الطلب</strong> - <code>AddWatermarkRequest</code> يجمع معلومات الملف والخيارات. استدعاء <code>watermarkApi.addWatermark(request)</code> ينفّذ العملية على الخادم ويعيد مسار الملف المعالج.</li>
</ol>
<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>AddWatermarkRequest request <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> AddWatermarkRequest<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>request<span style="color:#f92672">.</span><span style="color:#a6e22e">setFileInfo</span><span style="color:#f92672">(</span>inputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>request<span style="color:#f92672">.</span><span style="color:#a6e22e">setOutputFileInfo</span><span style="color:#f92672">(</span>outputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>request<span style="color:#f92672">.</span><span style="color:#a6e22e">setOptions</span><span style="color:#f92672">(</span>textOptions<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>AddWatermarkResponse response <span style="color:#f92672">=</span> watermarkApi<span style="color:#f92672">.</span><span style="color:#a6e22e">addWatermark</span><span style="color:#f92672">(</span>request<span style="color:#f92672">);</span>
</span></span></code></pre></div><ol start="5">
<li><strong>معالجة الاستجابة</strong> - الاستجابة تحتوي على مسار ملف الإخراج. في تطبيق حقيقي، عادةً ما تقوم بتنزيل الملف أو تمرير المسار إلى خدمة أخرى.</li>
</ol>
<p>للحصول على قائمة كاملة بالفئات والخصائص، راجع <a href="https://reference.groupdocs.cloud/watermark/">مرجع API</a>.</p>
<h2 id="تثبيت-وتكوين-groupdocswatermark-cloud-sdk-لـ-java">تثبيت وتكوين GroupDocs.Watermark Cloud SDK لـ Java</h2>
<p>أضف اعتماد Maven إلى ملف <code>pom.xml</code> الخاص بك (أو الإدخال المكافئ في Gradle). هذا يجلب الإصدار 23.8 من SDK.</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;dependency&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;groupId&gt;</span>com.groupdocs<span style="color:#f92672">&lt;/groupId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;artifactId&gt;</span>groupdocs-watermark-cloud<span style="color:#f92672">&lt;/artifactId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;version&gt;</span>23.8<span style="color:#f92672">&lt;/version&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/dependency&gt;</span>
</span></span></code></pre></div><p><strong>المتطلبات المسبقة</strong></p>
<ul>
<li>Java 8 أو أعلى</li>
<li>حساب GroupDocs Cloud نشط</li>
<li>Client ID و Client Secret (متوفر في لوحة تحكم GroupDocs Cloud)</li>
</ul>
<p><strong>مثال على التكوين</strong></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>Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<span style="color:#f92672">(</span><span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span><span style="color:#f92672">,</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><p>قم بتنزيل أحدث ملفات JAR من <a href="https://releases.groupdocs.cloud/watermark/java/">صفحة التحميل</a>. للاستخدام في بيئة الإنتاج، قم بتطبيق ترخيص صالح تم الحصول عليه من <a href="https://purchase.groupdocs.cloud/temporary-license/">صفحة الترخيص المؤقت</a>.</p>
<h2 id="الخلاصة">الخلاصة</h2>
<p>إضافة نص كغطاء فوق صورة GIF باستخدام REST في Java يصبح عملية قابلة للتكرار على الخادم بمساعدة <a href="https://products.groupdocs.cloud/watermark/java/">GroupDocs.Watermark Cloud SDK for Java</a>. يقوم SDK بتجريد التعقيدات المتعلقة بالتعامل مع الإطارات المتحركة، مما يتيح لك التركيز على محتوى الترجمات أو الرسائل الترويجية. بعد دمج عينة الكود أو سير عمل cURL، يمكنك ضبط أنماط الخطوط والألوان والشفافية لتتناسب مع علامتك التجارية. تذكر أن تأمن ترخيص الإنتاج؛ تفاصيل الأسعار متاحة على صفحة المنتج، ويمكن الحصول على ترخيص مؤقت للاختبار عبر <a href="https://purchase.groupdocs.cloud/temporary-license/">temporary license page</a>. برمجة سعيدة!</p>
<h2 id="faqs">FAQs</h2>
<ul>
<li>
<p><strong>كيف يمكنني إضافة نص كغطاء فوق صورة GIF باستخدام REST في Java عندما يتغير النص لكل مستخدم؟</strong><br>
قم بإنشاء كائن <code>TextWatermarkOptions</code> في وقت التشغيل باستخدام السلسلة الخاصة بالمستخدم، ثم استدعِ نفس استدعاء <code>addWatermark</code>. تقوم الواجهة البرمجية بمعالجة كل طلب بشكل مستقل، لذا يتم دعم المحتوى الديناميكي بالكامل.</p>
</li>
<li>
<p><strong>هل يمكنني إضافة ترجمات إلى صورة GIF متحركة دون التأثير على سرعة تشغيلها؟</strong><br>
نعم. يتم تطبيق العلامة المائية على كل إطار مع الحفاظ على تأخير الإطار الأصلي. ما عليك سوى ضبط <code>pageRange</code> إلى <code>&quot;1-&quot;</code> بحيث يحصل كل إطار على نفس التراكب.</p>
</li>
<li>
<p><strong>ما الصيغ المدعومة للون نص التراكب؟</strong><br>
يقبل SDK رموز ألوان HEX (مثال، <code>#FF0000</code>) وأسماء ألوان HTML القياسية. راجع <a href="https://reference.groupdocs.cloud/watermark/">مرجع API</a> للقائمة الكاملة.</p>
</li>
<li>
<p><strong>هل أحتاج إلى ترخيص للتطوير والاختبار؟</strong><br>
ترخيص مؤقت يكفي للتقييم والاختبار. بالنسبة للنشر في بيئة الإنتاج، قم بشراء ترخيص كامل من صفحة المنتج وتطبيقه باستخدام واجهة برمجة تطبيقات الترخيص الخاصة بـ SDK.</p>
</li>
</ul>
<h2 id="اقرأ-المزيد">اقرأ المزيد</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/ar/watermark/add-overlay-text-on-a-gif-using-rest-api-in-csharp/">إضافة نص تغطية على GIF باستخدام REST API في C#</a></li>
<li><a href="https://blog.groupdocs.cloud/ar/watermark/add-watermark-to-images-using-java/">إضافة علامة مائية إلى الصور باستخدام Java</a></li>
<li><a href="https://blog.groupdocs.cloud/ar/watermark/add-watermark-to-word-in-java-watermark-creator/">إضافة علامة مائية إلى Word في Java - منشئ العلامات المائية</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
