PDF belgelerinden görüntüleri çıkarmak, belge‑işleme hatları oluştururken sıkça ihtiyaç duyulan bir gereksinimdir; özellikle küçük resimler oluşturmak veya grafikleri başka yerlerde yeniden kullanmak için. GroupDocs.Parser Cloud SDK for .NET güçlü bir API sağlar ve bu görevi C#’ta basit hale getirir. Bu rehberde, bir PDF’yi nasıl yükleyeceğinizi, tüm gömülü görüntüleri nasıl alacağınızı, yerel olarak nasıl kaydedeceğinizi ve isteğe bağlı olarak uzak dosyayı nasıl temizleyeceğinizi, tam kod ve REST örnekleriyle öğreneceksiniz.

C# ile PDF Belgelerinden Görüntüleri Çıkarma Adımları

  1. GroupDocs Cloud storage’a PDF Yükleme: Use StorageApi.UploadFile to place the source PDF in the cloud.
var uploadRequest = new UploadFileRequest(remotePdfPath, File.ReadAllBytes(localPdfPath));
storageApi.UploadFile(uploadRequest);

Bu çağrı, dosyanın ayrıştırma için erişilebilir olmasını sağlar.

  1. Belge görüntülerini isteyin: ParserApi.GetDocumentImages metodunu GetDocumentImagesRequest ile çağırın.
var imagesRequest = new GetDocumentImagesRequest(remotePdfPath);
ImagesResult imagesResult = parserApi.GetDocumentImages(imagesRequest);

Yanıt, Base64 verisi ve meta verileri içeren ImageInfo nesnelerinden oluşan bir koleksiyon içerir. Tam detaylar için API referansına bakın.

  1. Her resmi çöz ve kaydet: imagesResult.Images koleksiyonunda döngü yapın, Base64 dizesini bir bayt dizisine dönüştürün ve dosyayı diske yazın.
foreach (ImageInfo imgInfo in imagesResult.Images)
{
    byte[] imageBytes = Convert.FromBase64String(imgInfo.Base64Data);
    string extension = imgInfo.FileExtension?.TrimStart('.').ToLower() ?? "bin";
    string fileName = $"extracted_page{imgInfo.PageNumber}_img{imgInfo.ImageIndex}_{imageCounter}.{extension}";
    File.WriteAllBytes(fileName, imageBytes);
}

Konsol, kaydedilen dosya adını, boyutları ve DPI değerlerini doğrulama amacıyla kaydeder.

  1. (Optional) Uzak PDF’yi temizle: Çıkarma işleminden sonra, depolamayı düzenli tutmak için yüklenen dosyayı silebilirsiniz.
var deleteRequest = new DeleteFileRequest(remotePdfPath);
storageApi.DeleteFile(deleteRequest);

Bu adım, temizlik hatalarını yok saymak için bir try‑catch bloğuna sarılmıştır.

  1. Çıktıyı incele: Konsol, Total images extracted: 12 gibi bir özet görüntüleyecek ve başarılı bir şekilde çıkarıldığını doğrulayacaktır.

Tam Kod Örneği: PDF Belgelerinden Görüntüleri Çıkarma GroupDocs.Parser

Aşağıdaki örnek, yukarıda açıklanan tam iş akışını gösterir. Yapılandırma, yükleme, görüntü çıkarma, kaydetme ve isteğe bağlı temizlik içerir.

using System;
using System.IO;
using System.Collections.Generic;
using GroupDocs.Parser.Cloud.Sdk.Api;
using GroupDocs.Parser.Cloud.Sdk.Client;
using GroupDocs.Parser.Cloud.Sdk.Model;
using GroupDocs.Parser.Cloud.Sdk.Model.Requests;

namespace ExtractImagesFromPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            // Configuration – replace with your actual credentials
            var config = new Configuration
            {
                ClientId = "YOUR_CLIENT_ID",
                ClientSecret = "YOUR_CLIENT_SECRET"
            };

// APIs
            var storageApi = new StorageApi(config);
            var parserApi = new ParserApi(config);

// Input PDF path (local) and remote name in storage
            const string localPdfPath = "input.pdf";
            const string remotePdfPath = "input.pdf";

try
            {
                // -------------------------------------------------
                // 1. Upload PDF to GroupDocs Cloud storage (if not already there)
                // -------------------------------------------------
                if (!File.Exists(localPdfPath))
                    throw new FileNotFoundException($"Local file not found: {localPdfPath}");

var uploadRequest = new UploadFileRequest(remotePdfPath, File.ReadAllBytes(localPdfPath));
                storageApi.UploadFile(uploadRequest);

// -------------------------------------------------
                // 2. Retrieve document images (all pages)
                // -------------------------------------------------
                var imagesRequest = new GetDocumentImagesRequest(remotePdfPath);
                ImagesResult imagesResult = parserApi.GetDocumentImages(imagesRequest);

// -------------------------------------------------
                // 3. Save each extracted image to disk
                // -------------------------------------------------
                int imageCounter = 0;
                foreach (ImageInfo imgInfo in imagesResult.Images)
                {
                    // Image data is returned as Base64 string
                    byte[] imageBytes = Convert.FromBase64String(imgInfo.Base64Data);

// Build a descriptive file name
                    string extension = imgInfo.FileExtension?.TrimStart('.').ToLower() ?? "bin";
                    string fileName = $"extracted_page{imgInfo.PageNumber}_img{imgInfo.ImageIndex}_{imageCounter}.{extension}";
                    File.WriteAllBytes(fileName, imageBytes);

Console.WriteLine($"Saved: {fileName} ({imgInfo.Width}x{imgInfo.Height} px, {imgInfo.Resolution} DPI)");
                    imageCounter++;
                }

Console.WriteLine($"Total images extracted: {imageCounter}");
            }
            catch (ApiException apiEx)
            {
                Console.Error.WriteLine($"GroupDocs API error: {apiEx.ErrorCode} - {apiEx.Message}");
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine($"Unexpected error: {ex.Message}");
            }
            finally
            {
                // -------------------------------------------------
                // 4. Optional cleanup – delete the uploaded PDF from storage
                // -------------------------------------------------
                try
                {
                    var deleteRequest = new DeleteFileRequest(remotePdfPath);
                    storageApi.DeleteFile(deleteRequest);
                }
                catch
                {
                    // Ignored – cleanup is optional
                }
            }
        }
    }
}

Not: Bu kod örneği temel işlevselliği gösterir. Projenizde kullanmadan önce, dosya yollarını ve yapılandırma değerlerini gerçek ortamınıza uygun şekilde güncellediğinizden, tüm gerekli bağımlılıkların doğru şekilde yüklendiğinden emin olun ve geliştirme ortamınızda kapsamlı bir şekilde test edin. Herhangi bir sorunla karşılaşırsanız, lütfen resmi belgeler adresine bakın veya destek ekibi ile iletişime geçin.

cURL Kullanarak REST API ile Görüntüleri Çıkarma

Aynı işlem doğrudan REST çağrılarıyla da gerçekleştirilebilir. Aşağıda minimal bir cURL iş akışı bulunmaktadır.

  1. Erişim belirteci alın (OAuth 2.0 client credentials grant).
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"

Yanıt access_token içerir.

  1. PDF’yi Yükle bulut depolamaya.
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/input.pdf" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        -H "Content-Type: application/pdf" \
        --data-binary "@input.pdf"
  1. Görüntüleri isteyin yüklenen belge için.
curl -X GET "https://api.groupdocs.cloud/v2.0/parser/input.pdf/images" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

JSON yanıtı, base64Data, fileExtension, pageNumber vb. içeren bir görüntü dizisi içerir.

  1. Her resmi kaydedin yerel olarak (örnek jq ve base64 kullanarak).
curl -X GET "https://api.groupdocs.cloud/v2.0/parser/input.pdf/images" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" | \
     jq -r '.images[] | "\(.pageNumber)_\(.imageIndex).\(.fileExtension) \(.base64Data)"' | \
     while read filename b64; do
         echo "$b64" | base64 -d > "$filename"
     done

Uç noktalar ve parametreler hakkında daha fazla ayrıntı için, resmi API belgeleri adresine bakın.

Ortamı Hazırlama

  1. NuGet aracılığıyla .NET istemci kitaplığını yükleyin:
dotnet add package GroupDocs.Parser-Cloud

Paket, resmi indirme sayfası üzerinden temin edilebilir.

  1. .NET 6.0 veya daha yeni bir sürümün yüklü olduğundan ve geçerli bir GroupDocs Cloud hesabının istemci kimlik bilgileriyle mevcut olduğundan emin olun.

  2. (İsteğe Bağlı) Referans için örnek depoyu klonlayın:

git clone https://github.com/groupdocs-parser-cloud/groupdocs-parser-cloud-dotnet.git

GroupDocs.Parser’ı Görüntü Çıkarma İçin Uygun Kılan Nedir

  • Doğrudan görüntü alma: GetDocumentImages çağrısı, ek dönüşüm adımları olmadan görüntüleri orijinal formatlarında döndürür.
  • Base64 teslimatı: Görüntüler Base64 dizeleri olarak sağlanır, bu da herhangi bir dilde kolayca çözülebilmelerini sağlar.
  • Sayfa‑seviyesi meta verileri: Her ImageInfo sayfa numarası, boyutlar, çözünürlük ve indeks içerir, bu da çıkarılan varlıkların düzenlenmesine yardımcı olur.
  • Tüm yaygın raster formatlarını destekler: PNG, JPEG, BMP, GIF, TIFF ve daha fazlası PDF’de saklandığı şekilde tam olarak korunur.
  • Ölçeklenebilir bulut işleme: Büyük PDF’ler GroupDocs sunucularında işlenir, uygulamanızdaki bellek baskısını azaltır.

Görüntü Çıkarma Seçeneklerini Yapılandırma

Temel örnek kutudan çıkar çıkmaz çalışsa da, isteği ince ayar yapabilirsiniz:

  • Sayfa aralığını belirtin: pages = "1-5" değerini GetDocumentImagesRequest içine ekleyerek çıkarımı sınırlayın.
  • Görüntü kalitesini ayarlayın: imageQuality parametresini (0‑100) kullanın, eğer sıkıştırılmış çıktıya ihtiyacınız varsa.
  • Biçime göre filtreleyin: Yalnızca seçilen biçimleri almak için fileExtensions = ["png","jpeg"] sağlayın.

Bu seçenekler, API referansı içinde belgelenmiştir.

Sonuç

C#’ta PDF belgelerinden resim çıkarma, GroupDocs.Parser Cloud SDK for .NET‘i kullandığınızda basit ve güvenilir bir süreç haline gelir. SDK, yükleme, ayrıştırma ve Base64 dönüşümünü yönetir, böylece dosyaları kaydetmeye ve iş akışınıza entegre etmeye odaklanabilirsiniz. Müşteri kimlik bilgilerinizi güvence altına almayı, lisans koşullarına uymayı ve değerlendirme için geçici lisansı geçici lisans sayfasında düşünmeyi unutmayın. Sağlanan kod ve REST örnekleriyle, herhangi bir .NET uygulamasına sağlam PDF resim çıkarımı eklemeye hazırsınız.

SSS

PDF belgelerinden C# kullanarak nasıl resim çıkarırım?
Parser API’sinin GetDocumentImages metodunu, PDF’i StorageApi.UploadFile ile yükledikten sonra kullanın. Döndürülen Base64 dizelerini çözün ve kod örneğinde gösterildiği gibi diske yazın.

PDF şifre korumalıysa ne olur?
İsteğin modeline şifreyi ekleyin. SDK, görüntüleri çıkarmadan önce dosyayı çözecektir. Tam özellik adını görmek için belgelendirme adresine bakın.

Belirli sayfalara çıkarımı sınırlayabilir miyim?
Evet, GetDocumentImagesRequest üzerindeki pages özelliğini virgülle ayrılmış bir liste veya aralık (ör. "1-3,5") olarak ayarlayın. API yalnızca bu sayfalardan görüntüleri döndürecektir.

Çıkarılan görüntüler için herhangi bir boyut sınırlaması var mı?
SDK, yeniden boyutlandırma yapmadan orijinal görüntü verilerini döndürür. Daha küçük dosyalara ihtiyacınız varsa, kaydedilen görüntüleri herhangi bir görüntü işleme kütüphanesi kullanarak sonradan işleyin.

Daha Fazla