<?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/ko/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>ko</language>
    <lastBuildDate>Mon, 12 Oct 2026 17:04:44 +0000</lastBuildDate><atom:link href="https://blog-qa.groupdocs.cloud/ko/tag/image-extraction-techniques/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>C#에서 PDF 문서의 이미지 추출</title>
      <link>https://blog-qa.groupdocs.cloud/ko/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/ko/parser/extract-images-from-pdf-documents-in-csharp/</guid>
      <description>C#를 사용하여 GroupDocs.Parser Cloud SDK for .NET으로 PDF 문서에서 이미지를 추출하는 방법을 배웁니다. 코드, 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#에서 간단하게 수행할 수 있는 강력한 API를 제공합니다. 이 가이드에서는 PDF를 업로드하고, 모든 포함된 이미지를 가져와 로컬에 저장하며, 필요에 따라 원격 파일을 정리하는 방법을 전체 코드와 REST 예제와 함께 배웁니다.</p>
<h2 id="c에서-pdf-문서의-이미지를-추출하는-단계">C#에서 PDF 문서의 이미지를 추출하는 단계</h2>
<ol>
<li><strong>GroupDocs Cloud 스토리지에 PDF 업로드</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 reference</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>(Optional) 원격 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="완전한-코드-예제-groupdocsparser를-사용한-pdf-문서에서-이미지-추출">완전한 코드 예제: GroupDocs.Parser를 사용한 PDF 문서에서 이미지 추출</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="curl을-사용한-rest-api로-이미지-추출">cURL을 사용한 REST API로 이미지 추출</h2>
<p>같은 작업을 직접 REST 호출로 수행할 수 있습니다. 아래는 최소한의 cURL 워크플로우입니다.</p>
<ol>
<li><strong>액세스 토큰을 얻습니다</strong> (OAuth 2.0 클라이언트 자격 증명 부여).</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>NuGet을 사용하여 .NET 클라이언트 라이브러리를 설치합니다:</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>
</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>git clone https://github.com/groupdocs-parser-cloud/groupdocs-parser-cloud-dotnet.git
</span></span></code></pre></div><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>: 출력이 <a href="https://docs.fileformat.com/web/compressed/">compressed</a>가 필요하면 <code>imageQuality</code> 매개변수(0‑100)를 사용합니다.</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 예제를 사용하면 .NET 애플리케이션에 강력한 PDF 이미지 추출 기능을 추가할 준비가 된 것입니다.</p>
<h2 id="faqs">FAQs</h2>
<p><strong>C#를 사용하여 PDF 문서에서 이미지를 추출하려면 어떻게 해야 하나요?</strong><br>
<code>StorageApi.UploadFile</code>로 PDF를 업로드한 후 Parser API의 <code>GetDocumentImages</code> 메서드를 사용하십시오. 반환된 Base64 문자열을 디코딩하고 디스크에 기록하십시오. 코드 예제에 표시된 대로.</p>
<p><strong>PDF가 비밀번호로 보호되어 있으면 어떻게 해야 하나요?</strong><br>
요청 모델에 비밀번호를 포함하십시오. SDK는 이미지를 추출하기 전에 파일을 복호화합니다. 정확한 속성 이름은 <a href="https://docs.groupdocs.cloud/parser/">문서</a>를 참조하십시오.</p>
<p><strong>특정 페이지로 추출을 제한할 수 있나요?</strong><br>
예, <code>GetDocumentImagesRequest</code>의 <code>pages</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/ko/parser/extract-images-from-pdf-using-csharp/">C# .NET에서 PDF 이미지 추출 | PDF Image Extractor API</a></li>
<li><a href="https://blog.groupdocs.cloud/ko/parser/extract-images-from-pdf-documents-in-java/">Java에서 PDF 문서 이미지 추출</a></li>
<li><a href="https://blog.groupdocs.cloud/ko/parser/extract-text-from-word-document-csharp/">.NET REST API를 사용하여 PDF에서 텍스트 추출 | Document to Text Converter</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
