IRONSOFTWAREHOME

2 GB Üzerindeki Büyük TIFF Dosyaları Yüklenemiyor

Curtis Chau
Curtis Chau
Updated: 29 Haziran 2026

IronOCR, resim girdisini kendi içindeki AnyBitmap türü aracılığıyla tek bir hafıza içi arabelleğe yükler. Bu tampon 32-bit bir tamsayı ile indekslenir, bu nedenle sistem belleğinizde ne kadar olduğundan bağımsız olarak, yaklaşık 2 GB ile sınırlandırılır. 2 GB'den büyük bir TIFF bu sınırı aşar ve yüklenemez.

Loaded pages: 0
Text

OcrInput.LoadImage(filePath) dahili olarak bir AnyBitmap oluşturur ve tüm resmi tek bir arabelleğe materyalize eder. Bu arabelleğin int ile indekslenmesi nedeniyle, kullanılan bellek ne kadar serbest olursa olsun yaklaşık 2 GB ile sınırlıdır, bu yüzden limitin biraz üzerindeki bir TIFF tutulamaz ve yükleme başarısız olur. Bu bir çalışma zamanı kısıtlamasıdır, işletim sistemine özgü değildir, bu yüzden her .NET platformunu eşit şekilde etkiler.

Uyarı: LoadImage(filePath), açık bir istisna atmak yerine şu anda sıfır yüklü sayfa döndürmektedir. Bu sessiz başarısızlık bilinen bir sorundur; daha net bir istisna planlanıyor. Tek tampon tasarımı mimari bir sınırdır ve yerel her sayfa için TIFF akışı henüz mevcut değildir.

Çözüm

Çözüm, TIFF'i 2 GB'ın altında parçalara bölmek ve her parçayı dosya yolu yerine bir bayt dizisi olarak IronOCR'ye iletmektir.

1. Magick.NET Ekleyin

Magick.NET'i kullanarak TIFF'i IronOCR'ye iletmeden önce bölün. Projenizle eşleşen varyantı seçin (Q8/Q16, AnyCPU/x64).

dotnet add package Magick.NET-Q16-AnyCPU
SHELL

2. TIFF'i Bölün ve Her Parçayı Yükleyin

TIFF'i MagickImageCollection olarak açın, 2 GB altında kalan sayfa sayısı parçalarına ayırın, her parçayı byte dizisine dönüştürün ve OcrInput.LoadImage(byte[]) ile yükleyin.

var inputPath = "input.tiff";
var pagesPerChunk = 100;
using var allPages = new MagickImageCollection(inputPath);
int chunkNumber = 1;
for (int i = 0; i < allPages.Count; i += pagesPerChunk)
{
    using var chunk = new MagickImageCollection();
    for (int j = i; j < Math.Min(i + pagesPerChunk, allPages.Count); j++)
    {
        chunk.Add(allPages[j].Clone());
    }
    foreach (var image in chunk)
    {
        image.SetCompression(CompressionMethod.LZW);
    }
    var chunkBytes = chunk.ToByteArray();
    using (var ocrInput = new OcrInput())
    {
        ocrInput.LoadImage(chunkBytes);
        var pages = ocrInput.GetPages().ToList();
        Console.WriteLine($"Loaded pages: {pages.Count}");
        var result = new IronTesseract().Read(ocrInput);
        Console.WriteLine("OCR Text Length: " + (result.Text?.Length ?? 0));
    }
    Console.WriteLine($"Chunk {chunkNumber} processed");
    chunkNumber++;
}
C#

Her parça, her bir arabelleği 2 GB tavanın altında tutarak LoadImage(chunkBytes) içinden ham byte olarak geçer. SetCompression(CompressionMethod.LZW), bir byte dizisine dönüştürülmeden önce her parçayı küçültür.

3. Parça Boyutunu Ayarlayın

Verileriniz için pagesPerChunk ayarlayın. Bir parça 2 GB'a yaklaşıyorsa veya bellek dar ise düşürün; küçük sayfalar için yükü azaltmak üzere artırın.

4. Dağıtımda Magick.NET'i Hesaba Katın

Magick.NET, ImageMagick yerlisi ikili dosyalarını taşır. Dağıttığınızda ek paket boyutu ve doğal bağımlılık ayak izini hesaba katın.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

Başlamaya Hazır mısınız?

Nuget Downloads 6,236,385Sürüm:2026.9yeni yayınlandı

Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez
PDF için C# NuGet Kütüphanesi
NuGet ile yükleyin

Sürüm: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. Çözüm Gezgini'nde Referanslar'a sağ tıklayın, NuGet Paketlerini Yönet
  2. "IronOCR" aratıp seçin
  3. Paketi seçin ve yükleyin
C# PDF DLL
DLL İndir

Sürüm: 2026.9

veya buradan Windows Yükleyicisini indirin.

  1. IronOCR'u ~/Libs gibi bir yere indirip sıkıştırmasını açın, Çözüm dizininizde
  2. Visual Studio Çözüm Gezgini'nde, Referanslar'a sağ tıklayın. Gözat'ı seçin, "IronOCR.dll"

$999'dan itibaren lisanslar

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez