<?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 extraction techniques on Document Processing REST APIs | GroupDocs Cloud</title>
    <link>https://blog-qa.groupdocs.cloud/ar/tag/image-extraction-techniques/</link>
    <description>Recent content in image extraction techniques on Document Processing REST APIs | GroupDocs Cloud</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ar</language>
    <lastBuildDate>Mon, 12 Oct 2026 17:04:44 +0000</lastBuildDate><atom:link href="https://blog-qa.groupdocs.cloud/ar/tag/image-extraction-techniques/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>استخراج الصور من مستندات PDF باستخدام C#</title>
      <link>https://blog-qa.groupdocs.cloud/ar/parser/extract-images-from-pdf-documents-in-csharp/</link>
      <pubDate>Mon, 12 Oct 2026 17:04:44 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/ar/parser/extract-images-from-pdf-documents-in-csharp/</guid>
      <description>تعلم كيفية استخراج الصور من مستندات PDF باستخدام C# و GroupDocs.Parser Cloud SDK for .NET. اتبع هذا الدليل خطوة بخطوة مع الشيفرة، cURL والنصائح.</description>
      <content:encoded><![CDATA[<p>استخراج الصور من مستندات <a href="https://docs.fileformat.com/pdf">PDF</a> هو طلب شائع عند بناء خطوط معالجة المستندات، خاصةً لتوليد الصور المصغرة أو إعادة استخدام الرسومات في أماكن أخرى. يوفر <a href="https://products.groupdocs.cloud/parser/net/">GroupDocs.Parser Cloud SDK for .NET</a> واجهة برمجة تطبيقات قوية تجعل هذه المهمة سهلة في C#. في هذا الدليل ستتعلم كيفية رفع ملف PDF، استرجاع جميع الصور المضمنة، حفظها محليًا، وإزالة الملف البعيد اختياريًا، مع أمثلة كاملة على الشيفرة وREST.</p>
<h2 id="خطوات-استخراج-الصور-من-مستندات-pdf-في-c">خطوات استخراج الصور من مستندات PDF في C#</h2>
<ol>
<li><strong>رفع PDF إلى GroupDocs Cloud storage</strong>: استخدم <code>StorageApi.UploadFile</code> لوضع ملف PDF المصدر في السحابة.</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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> uploadRequest = <span style="color:#66d9ef">new</span> UploadFileRequest(remotePdfPath, File.ReadAllBytes(localPdfPath));
</span></span><span style="display:flex;"><span>storageApi.UploadFile(uploadRequest);
</span></span></code></pre></div><p>يضمن هذا الاستدعاء أن يكون الملف متاحًا للتحليل.</p>
<ol start="2">
<li><strong>طلب صور المستند</strong>: استدعِ <code>ParserApi.GetDocumentImages</code> مع <code>GetDocumentImagesRequest</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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> imagesRequest = <span style="color:#66d9ef">new</span> GetDocumentImagesRequest(remotePdfPath);
</span></span><span style="display:flex;"><span>ImagesResult imagesResult = parserApi.GetDocumentImages(imagesRequest);
</span></span></code></pre></div><p>الاستجابة تحتوي على مجموعة من كائنات <code>ImageInfo</code>، كل منها يحمل بيانات Base64 وبيانات التعريف الوصفية. راجع <a href="https://reference.groupdocs.cloud/parser/">مرجع API</a> للحصول على التفاصيل الكاملة.</p>
<ol start="3">
<li><strong>فك الترميز وحفظ كل صورة</strong>: قم بالتكرار عبر <code>imagesResult.Images</code>، وحول سلسلة Base64 إلى مصفوفة بايت، واكتب الملف إلى القرص.</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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">foreach</span> (ImageInfo imgInfo <span style="color:#66d9ef">in</span> imagesResult.Images)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">byte</span>[] imageBytes = Convert.FromBase64String(imgInfo.Base64Data);
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">string</span> extension = imgInfo.FileExtension?.TrimStart(<span style="color:#e6db74">&#39;.&#39;</span>).ToLower() ?? <span style="color:#e6db74">&#34;bin&#34;</span>;
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">string</span> fileName = <span style="color:#e6db74">$&#34;extracted_page{imgInfo.PageNumber}_img{imgInfo.ImageIndex}_{imageCounter}.{extension}&#34;</span>;
</span></span><span style="display:flex;"><span>    File.WriteAllBytes(fileName, imageBytes);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>تسجل وحدة التحكم اسم الملف المحفوظ والأبعاد و DPI للتحقق.</p>
<ol start="4">
<li><strong>(اختياري) تنظيف PDF عن بُعد</strong>: بعد الاستخراج قد تحتاج إلى حذف الملف الذي تم تحميله للحفاظ على تنظيم التخزين.</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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> deleteRequest = <span style="color:#66d9ef">new</span> DeleteFileRequest(remotePdfPath);
</span></span><span style="display:flex;"><span>storageApi.DeleteFile(deleteRequest);
</span></span></code></pre></div><p>هذه الخطوة موضوعة داخل كتلة try‑catch لتجاهل أي أخطاء في عملية التنظيف.</p>
<ol start="5">
<li><strong>مراجعة الإخراج</strong>: ستعرض وحدة التحكم ملخصًا مثل <code>Total images extracted: 12</code>، لتأكيد نجاح الاستخراج.</li>
</ol>
<h2 id="مثال-كامل-للكود-استخراج-الصور-من-مستندات-pdf-باستخدام-groupdocsparser">مثال كامل للكود: استخراج الصور من مستندات PDF باستخدام GroupDocs.Parser</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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System.IO;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System.Collections.Generic;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Parser.Cloud.Sdk.Api;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Parser.Cloud.Sdk.Client;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Parser.Cloud.Sdk.Model;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Parser.Cloud.Sdk.Model.Requests;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> ExtractImagesFromPdf
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">Program</span>
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">void</span> Main(<span style="color:#66d9ef">string</span>[] args)
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Configuration – replace with your actual credentials</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> config = <span style="color:#66d9ef">new</span> Configuration
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                ClientId = <span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span>,
</span></span><span style="display:flex;"><span>                ClientSecret = <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span>
</span></span><span style="display:flex;"><span>            };
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// APIs</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> storageApi = <span style="color:#66d9ef">new</span> StorageApi(config);
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> parserApi = <span style="color:#66d9ef">new</span> ParserApi(config);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Input PDF path (local) and remote name in storage</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">string</span> localPdfPath = <span style="color:#e6db74">&#34;input.pdf&#34;</span>;
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">string</span> remotePdfPath = <span style="color:#e6db74">&#34;input.pdf&#34;</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">try</span>
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// 1. Upload PDF to GroupDocs Cloud storage (if not already there)</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">if</span> (!File.Exists(localPdfPath))
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">throw</span> <span style="color:#66d9ef">new</span> FileNotFoundException(<span style="color:#e6db74">$&#34;Local file not found: {localPdfPath}&#34;</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> uploadRequest = <span style="color:#66d9ef">new</span> UploadFileRequest(remotePdfPath, File.ReadAllBytes(localPdfPath));
</span></span><span style="display:flex;"><span>                storageApi.UploadFile(uploadRequest);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// 2. Retrieve document images (all pages)</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">var</span> imagesRequest = <span style="color:#66d9ef">new</span> GetDocumentImagesRequest(remotePdfPath);
</span></span><span style="display:flex;"><span>                ImagesResult imagesResult = parserApi.GetDocumentImages(imagesRequest);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// 3. Save each extracted image to disk</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">int</span> imageCounter = <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">foreach</span> (ImageInfo imgInfo <span style="color:#66d9ef">in</span> imagesResult.Images)
</span></span><span style="display:flex;"><span>                {
</span></span><span style="display:flex;"><span>                    <span style="color:#75715e">// Image data is returned as Base64 string</span>
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">byte</span>[] imageBytes = Convert.FromBase64String(imgInfo.Base64Data);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Build a descriptive file name</span>
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">string</span> extension = imgInfo.FileExtension?.TrimStart(<span style="color:#e6db74">&#39;.&#39;</span>).ToLower() ?? <span style="color:#e6db74">&#34;bin&#34;</span>;
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">string</span> fileName = <span style="color:#e6db74">$&#34;extracted_page{imgInfo.PageNumber}_img{imgInfo.ImageIndex}_{imageCounter}.{extension}&#34;</span>;
</span></span><span style="display:flex;"><span>                    File.WriteAllBytes(fileName, imageBytes);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Console.WriteLine(<span style="color:#e6db74">$&#34;Saved: {fileName} ({imgInfo.Width}x{imgInfo.Height} px, {imgInfo.Resolution} DPI)&#34;</span>);
</span></span><span style="display:flex;"><span>                    imageCounter++;
</span></span><span style="display:flex;"><span>                }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Console.WriteLine(<span style="color:#e6db74">$&#34;Total images extracted: {imageCounter}&#34;</span>);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">catch</span> (ApiException apiEx)
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                Console.Error.WriteLine(<span style="color:#e6db74">$&#34;GroupDocs API error: {apiEx.ErrorCode} - {apiEx.Message}&#34;</span>);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">catch</span> (Exception ex)
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                Console.Error.WriteLine(<span style="color:#e6db74">$&#34;Unexpected error: {ex.Message}&#34;</span>);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">finally</span>
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// 4. Optional cleanup – delete the uploaded PDF from storage</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">try</span>
</span></span><span style="display:flex;"><span>                {
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">var</span> deleteRequest = <span style="color:#66d9ef">new</span> DeleteFileRequest(remotePdfPath);
</span></span><span style="display:flex;"><span>                    storageApi.DeleteFile(deleteRequest);
</span></span><span style="display:flex;"><span>                }
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">catch</span>
</span></span><span style="display:flex;"><span>                {
</span></span><span style="display:flex;"><span>                    <span style="color:#75715e">// Ignored – cleanup is optional</span>
</span></span><span style="display:flex;"><span>                }
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><blockquote>
<p><strong>ملاحظة:</strong> يوضح مثال الشيفرة هذا الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث أي مسارات ملفات وقيم التكوين لتطابق بيئتك الفعلية، وتحقق من أن جميع الاعتمادات المطلوبة مثبتة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشكلات، يرجى الرجوع إلى <a href="https://docs.groupdocs.cloud/parser/">التوثيق الرسمي</a> أو التواصل مع <a href="https://forum.groupdocs.cloud/c/parser/19">فريق الدعم</a> للحصول على المساعدة.</p>
</blockquote>
<h2 id="استخراج-الصور-عبر-واجهة-برمجة-التطبيقات-rest-باستخدام-curl">استخراج الصور عبر واجهة برمجة التطبيقات REST باستخدام cURL</h2>
<p>يمكن تنفيذ العملية نفسها باستخدام استدعاءات REST مباشرة. أدناه سير عمل cURL بسيط.</p>
<ol>
<li><strong>الحصول على رمز وصول</strong> (OAuth 2.0 client credentials grant).</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-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/oauth2/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/x-www-form-urlencoded&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#34;grant_type=client_credentials&amp;client_id=YOUR_CLIENT_ID&amp;client_secret=YOUR_CLIENT_SECRET&#34;</span>
</span></span></code></pre></div><p>الاستجابة تحتوي على <code>access_token</code>.</p>
<ol start="2">
<li><strong>رفع ملف PDF</strong> إلى التخزين السحابي.</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-bash" data-lang="bash"><span style="display:flex;"><span>curl -X PUT <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/input.pdf&#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/pdf&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     --data-binary <span style="color:#e6db74">&#34;@input.pdf&#34;</span>
</span></span></code></pre></div><ol start="3">
<li><strong>طلب الصور</strong> للمستند المرفوع.</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-bash" data-lang="bash"><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/parser/input.pdf/images&#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></span></code></pre></div><p>استجابة <a href="https://docs.fileformat.com/web/json/">JSON</a> تتضمن مصفوفة من الصور مع <code>base64Data</code>، <code>fileExtension</code>، <code>pageNumber</code>، إلخ.</p>
<ol start="4">
<li><strong>احفظ كل صورة</strong> محليًا (مثال باستخدام <code>jq</code> و <code>base64</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-bash" data-lang="bash"><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/parser/input.pdf/images&#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>     jq -r <span style="color:#e6db74">&#39;.images[] | &#34;\(.pageNumber)_\(.imageIndex).\(.fileExtension) \(.base64Data)&#34;&#39;</span> | <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     <span style="color:#66d9ef">while</span> read filename b64; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span>         echo <span style="color:#e6db74">&#34;</span>$b64<span style="color:#e6db74">&#34;</span> | base64 -d &gt; <span style="color:#e6db74">&#34;</span>$filename<span style="color:#e6db74">&#34;</span>
</span></span><span style="display:flex;"><span>     <span style="color:#66d9ef">done</span>
</span></span></code></pre></div><p>لمزيد من التفاصيل حول نقاط النهاية والمعلمات، راجع <a href="https://docs.groupdocs.cloud/parser/">وثائق API الرسمية</a>.</p>
<h2 id="إعداد-البيئة">إعداد البيئة</h2>
<ol>
<li>قم بتثبيت مكتبة العميل .NET عبر NuGet:</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-bash" data-lang="bash"><span style="display:flex;"><span>dotnet add package GroupDocs.Parser-Cloud
</span></span></code></pre></div><p>الحزمة متاحة من صفحة التحميل الرسمية <a href="https://releases.groupdocs.cloud/parser/net/">صفحة التحميل</a>.</p>
<ol start="2">
<li>
<p>تأكد من أنك قمت بتثبيت .NET 6.0 أو أحدث ولديك حساب GroupDocs Cloud صالح مع بيانات اعتماد العميل.</p>
</li>
<li>
<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-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/groupdocs-parser-cloud/groupdocs-parser-cloud-dotnet.git
</span></span></code></pre></div></li>
</ol>
<h2 id="ما-الذي-يجعل-groupdocsparser-مناسبا-لاستخراج-الصور">ما الذي يجعل GroupDocs.Parser مناسبًا لاستخراج الصور</h2>
<ul>
<li><strong>استرجاع الصور مباشرة</strong>: استدعاء <code>GetDocumentImages</code> يُعيد الصور بصيغتها الأصلية دون خطوات تحويل إضافية.</li>
<li><strong>تسليم Base64</strong>: تُقدم الصور كسلاسل Base64، مما يجعل من السهل فك تشفيرها بأي لغة.</li>
<li><strong>البيانات الوصفية على مستوى الصفحة</strong>: كل <code>ImageInfo</code> يتضمن رقم الصفحة، الأبعاد، الدقة والفهرس، مما يساعد على تنظيم الأصول المستخرجة.</li>
<li><strong>دعم جميع صيغ الصور النقطية الشائعة</strong>: <a href="https://docs.fileformat.com/image/png/">PNG</a>, <a href="https://docs.fileformat.com/image/jpeg/">JPEG</a>, <a href="https://docs.fileformat.com/image/bmp/">BMP</a>, <a href="https://docs.fileformat.com/image/gif/">GIF</a>, <a href="https://docs.fileformat.com/image/tiff/">TIFF</a> وغيرها تُحفظ تمامًا كما هي مخزنة في PDF.</li>
<li><strong>معالجة سحابية قابلة للتوسع</strong>: يتم معالجة ملفات PDF الكبيرة على خوادم GroupDocs، مما يقلل من ضغط الذاكرة على تطبيقك.</li>
</ul>
<h2 id="تكوين-خيارات-استخراج-الصور">تكوين خيارات استخراج الصور</h2>
<p>بينما يعمل المثال الأساسي مباشرةً، يمكنك ضبط الطلب بدقة.</p>
<ul>
<li><strong>تحديد نطاق الصفحات</strong>: أضف <code>pages = &quot;1-5&quot;</code> إلى <code>GetDocumentImagesRequest</code> لتقييد الاستخراج.</li>
<li><strong>ضبط جودة الصورة</strong>: استخدم معامل <code>imageQuality</code> (0‑100) إذا كنت بحاجة إلى مخرجات <a href="https://docs.fileformat.com/web/compressed/">مضغوطة</a>.</li>
<li><strong>تصفية حسب الصيغة</strong>: قدّم <code>fileExtensions = [&quot;png&quot;,&quot;jpeg&quot;]</code> لتلقي الصيغ المحددة فقط.</li>
</ul>
<p>تم توثيق هذه الخيارات في <a href="https://reference.groupdocs.cloud/parser/">مرجع API</a>.</p>
<h2 id="الخلاصة">الخلاصة</h2>
<p>استخراج الصور من مستندات PDF في C# يصبح عملية بسيطة وموثوقة عندما تستخدم <a href="https://products.groupdocs.cloud/parser/net/">GroupDocs.Parser Cloud SDK for .NET</a>. يتعامل SDK مع التحميل والتحليل وتحويل Base64، مما يتيح لك التركيز على حفظ الملفات ودمجها في سير عملك. تذكر تأمين بيانات اعتماد العميل الخاصة بك، واحترام شروط الترخيص، والنظر في الحصول على ترخيص مؤقت للتقييم عبر <a href="https://purchase.groupdocs.cloud/temporary-license/">صفحة الترخيص المؤقت</a>. مع الشيفرة وأمثلة REST المقدمة، أنت جاهز لإضافة استخراج صور PDF قوي إلى أي تطبيق .NET.</p>
<h2 id="الأسئلة-المتكررة">الأسئلة المتكررة</h2>
<p><strong>كيف يمكنني استخراج الصور من مستندات PDF باستخدام C#؟</strong><br>
استخدم طريقة <code>GetDocumentImages</code> في واجهة برمجة تطبيقات Parser بعد رفع ملف PDF باستخدام <code>StorageApi.UploadFile</code>. فكّ الترميز Base64 للنتائج واكتبها إلى القرص، كما هو موضح في مثال الشيفرة.</p>
<p><strong>ماذا لو كان ملف PDF محميًا بكلمة مرور؟</strong><br>
قم بتضمين كلمة المرور في نموذج الطلب. سيقوم SDK بفك تشفير الملف قبل استخراج الصور. راجع <a href="https://docs.groupdocs.cloud/parser/">التوثيق</a> للحصول على اسم الخاصية الدقيق.</p>
<p><strong>هل يمكنني تحديد استخراج الصفحات المحددة؟</strong><br>
نعم، قم بتعيين خاصية <code>pages</code> في <code>GetDocumentImagesRequest</code> إلى قائمة مفصولة بفواصل أو نطاق (مثال: <code>&quot;1-3,5&quot;</code>). سيعيد الـ API الصور فقط من تلك الصفحات.</p>
<p><strong>هل هناك أي حدود لحجم الصور المستخرجة؟</strong><br>
يعيد SDK بيانات الصورة الأصلية دون تعديل الحجم. إذا كنت بحاجة إلى ملفات أصغر، قم بمعالجة الصور المحفوظة لاحقًا باستخدام أي مكتبة معالجة صور.</p>
<h2 id="read-more">Read More</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/ar/parser/extract-images-from-pdf-using-csharp/">استخراج الصور من PDF باستخدام C# .NET | PDF Image Extractor API</a></li>
<li><a href="https://blog.groupdocs.cloud/ar/parser/extract-images-from-pdf-documents-in-java/">استخراج الصور من مستندات PDF في Java</a></li>
<li><a href="https://blog.groupdocs.cloud/ar/parser/extract-text-from-word-document-csharp/">استخراج النص من PDF باستخدام .NET REST API | محول المستند إلى نص</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
