C# içinde Akışlardan Barkod Nasıl Okunur

How to Read Barcodes from Streams with C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode, başta akışları diske kaydetme zorunluluğunu ortadan kaldırarak .NET uygulamalarında MemoryStream nesnelerinden doğrudan barkodları okur. Bu, bellekte saklanan hem görüntü hem de PDF belge akışlarından verimli barkod işlemi sağlar.

MemoryStream, bellekte saklanan akışlardan okuyan ve bunlara yazan bir .NET Framework sınıfıdır. Veriyi fiziksel dosyalar yerine bellek içinde tutarak işler. Bu yaklaşım, web uygulamaları, API'ler veya barkod verilerini bayt dizileri olarak aldığınız veya geçici dosyalar oluşturmadan resimleri işlemeniz gereken senaryolar için iyi çalışır.

görüntü dosyalarından barkod okuma veya PDF dosyalarından öte, IronBarcode akışlardan da barkod okur. Kutuphane, giriş olarak PDF belge veya görüntü akışlarını kabul eder ve barkod okuma sonuçlarını verir. Bu yetenek, veritabanlarından, web yüklemelerinden veya bellek önbellekli içeriklerden veri işlemeye uygundur.

Hızlı Başlangıç: Barkodu Doğrudan Görüntü Akışından Okuyun

IronBarcode ile herhangi bir görüntü akışından barkod okumak için iki satır kod kullanın—disk yazılması gerekmez. Bu örnek, .NET'teki akış tabanlı barkod okuma işlemini gösterir.

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/BarCode yükleyin

    PM > Install-Package BarCode
  2. Bu kod parçasını kopyalayıp çalıştırın.

    var result = IronBarCode.BarcodeReader.Read(myImageStream);
    Console.WriteLine(result[0].Text);
  3. Canlı ortamınızda test etmek için dağıtın

    Bugün projenizde IronBarcode kullanmaya başlayın ücretsiz deneme ile

    arrow pointer

Görüntü Akışlarından Barkodları Nasıl Okurum?

Neden Dosyalar Yerine Hafıza Akışları Kullanılmalı?

Hafıza akışları, dosya tabanlı işlemlere göre birkaç avantaj sunar. Disk G/Ç yükünü ortadan kaldırır, uygulamaları daha hızlı hale getirir. Hassas barkod verileri diske hiç dokunmadığı için güvenliği artırır. Disk erişiminin sınırlı veya pahalı olduğu bulut ortamlarına da uygundur. IronBarcode'un async ve çok iş parçacıklı yetenekleri ile birleştirildiğinde, maksimum performans için birden fazla akışı eşzamanlı olarak işleyebilirsiniz.

Bu bölüm, bir görüntü akışını ve List<MemoryStream> içinde saklanan birden fazla görüntü akışını okumak için IronBarcode'un nasıl kullanılacağını gösterir. Aşağıdaki kod, işlemi açıklamak için yorumlar içerir:

Hangi Görüntü Formatları Destekleniyor?

IronBarcode, akışlardan okurken birden çok görüntü formatını destekler: JPEG, PNG, GIF, TIFF, BMP ve SVG. Bu esneklik, kaynak format ne olursa olsun barkod görüntülerini işlemeyi mümkün kılar. Optimal sonuçlar için barkod okuyucu ayarlarını kullanarak okuma sürecini ince ayar yapın.

using IronBarCode;
using System;
using System.Collections.Generic;
using System.IO;

class BarcodeFromImageStream
{
    static void Main(string[] args)
    {
        // Create a list of MemoryStreams to store image streams
        List<MemoryStream> imageStreams = new List<MemoryStream>
        {
            // Example of adding an existing MemoryStream object to the list
            new MemoryStream(File.ReadAllBytes("example1.png")),
            new MemoryStream(File.ReadAllBytes("example2.png"))
        };

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-1.cs
using IronBarCode;
using System;
using System.Collections.Generic;
using System.IO;

class BarcodeFromImageStream
{
    static void Main(string[] args)
    {
        // Create a list of MemoryStreams to store image streams
        List<MemoryStream> imageStreams = new List<MemoryStream>
        {
            // Example of adding an existing MemoryStream object to the list
            new MemoryStream(File.ReadAllBytes("example1.png")),
            new MemoryStream(File.ReadAllBytes("example2.png"))
        };

using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.IO;

List<MemoryStream> list = new List<MemoryStream>();
list.Add(AnyBitmap.FromFile("image1.jpg").ToStream());
list.Add(AnyBitmap.FromFile("image2.jpg").ToStream());
list.Add(AnyBitmap.FromFile("image3.png").ToStream());

var myBarcode = BarcodeReader.Read(list);

foreach (var barcode in myBarcode)
{
    Console.WriteLine(barcode.ToString());
}
Imports IronBarCode
Imports System
Imports System.Collections.Generic
Imports System.IO

Friend Class BarcodeFromImageStream
	Shared Sub Main(ByVal args() As String)
		' Create a list of MemoryStreams to store image streams
		Dim imageStreams As New List(Of MemoryStream) From {
			New MemoryStream(File.ReadAllBytes("example1.png")),
			New MemoryStream(File.ReadAllBytes("example2.png"))
		}

Dim IronBarCode As using
Using IronSoftware.Drawing
	Dim System As using
	Using System.Collections.Generic
		Using System.IO
			
			Dim list As New List(Of MemoryStream)()
			list.Add(AnyBitmap.FromFile("image1.jpg").ToStream())
			list.Add(AnyBitmap.FromFile("image2.jpg").ToStream())
			list.Add(AnyBitmap.FromFile("image3.png").ToStream())
			
			Dim myBarcode = BarcodeReader.Read(list)
			
			For Each barcode In myBarcode
				Console.WriteLine(barcode.ToString())
			Next barcode
		End Using
	End Using
End Using
$vbLabelText   $csharpLabel

Birden Çok Görüntü Akışı Nasıl Yönetilir?

Yukarıdaki kod, IronBarcode'un MemoryStream nesnesi veya MemoryStream nesnelerinin bir listesini BarcodeReader.Read() yönteminde kabul ettiğini gösterir. Örnek, görüntü dosyalarını MemoryStream nesnelerine dönüştürür ve barkodları doğrudan akışlardan okur.

Birden fazla akış işlerken, IronBarcode, verimli bir şekilde okuma hız seçeneklerini kullanır. İhtiyacınıza göre okuma hızını ayarlayın—ister maksimum hassasiyet, ister en hızlı işlem süresi gerekeni. Tek bir akıştan birden fazla barkod okurken, IronBarcode otomatik olarak tüm bulunan barkodları algılar ve geri döner.

Akışlardaki kusurlu veya düşük kaliteli görüntülerle doğruluğu artırmak için işlemden önce görüntü düzeltme filtreleri uygulayın. Bu, barkod tanıma oranlarını önemli ölçüde iyileştirir.

PDF Belge Akışlarından Barkodları Nasıl Okurum?

Neden Read() Yerine ReadPdf() Kullanmalı?

ReadPdf() yöntemi özellikle PDF belgeleri için optimize edilmiştir ve genel Read() yöntemine göre avantajlar sunar. PDF'e özgü çok sayfalı belgeler, vektör grafikleri ve gömülü görüntüler gibi özellikleri verimli bir şekilde işler. Yöntem, tüm PDF sayfalarını otomatik olarak işler ve çeşitli PDF formatları ve sıkıştırma türlerini işler. Kapsamlı özellikler için barkod okuma eğitimine bakın.

Bu bölüm, IronBarcode'un PDF belge dosyalarını MemoryStream nesneleri olarak veya PDF belge akışlarının listesi olarak okumayı gösterir. İşte kod:

Birden Çok PDF Belgesi Hakkında Ne Yapabilirim?

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-2.cs
using IronBarCode;
using IronPdf;
using System;
using System.IO;

MemoryStream document = PdfDocument.FromFile(@"file_path.pdf").Stream;

var myBarcode = BarcodeReader.ReadPdf(document);

foreach (var value in myBarcode)
{
    Console.WriteLine(value.ToString());
}
Imports IronBarCode
Imports IronPdf
Imports System
Imports System.IO

Private document As MemoryStream = PdfDocument.FromFile("file_path.pdf").Stream

Private myBarcode = BarcodeReader.ReadPdf(document)

For Each value In myBarcode
	Console.WriteLine(value.ToString())
Next value
$vbLabelText   $csharpLabel

Çoklu PDF Akışlarını Etkin Bir Şekilde Nasıl İşlerim?

PDF belgelerinden MemoryStream nesneleri olarak barkod okuma, görüntülerden okumaya benzer. Ana fark, yöntemdir: BarcodeReader.ReadPdf() özellikle PDF belgelerini ele alır. Örnek, PDF belgelerini MemoryStream nesnelerine dönüştürmek için IronPDF kullanır.

Birden fazla PDF belgesi için, tüm PDF'leri tek bir belge akışına birleştirin ve ardından BarcodeReader.ReadPdf() 'a besleyin. Bu yaklaşım, her bir PDF'yi ayrı ayrı işlemekten daha verimlidir ve bellek yükünü azaltır. Dökümanlarınızı okumak için optimize etmek amacıyla PDF'e özgü barkod okuyucu ayarlarını yapılandırın.

Gelişmiş senaryolar için belirli sayfaları veya PDF bölgelerini işleyin. IronBarcode, barkodların göründüğü alanları hedefleyerek sayfa aralıklarını ve sayfa içi kırpma bölgelerini belirtmenizi sağlar. Bu, büyük belgeler için işlem hızını artırır.

Üretimde akışları kullanırken, bellek sızıntılarını önlemek için MemoryStream nesnelerini düzgün bir şekilde elden çıkarın. using bildirimi otomatik elden çıkarma sağlar:

using (MemoryStream pdfStream = new MemoryStream(pdfBytes))
{
    var results = BarcodeReader.ReadPdf(pdfStream);
    // Process results
}
using (MemoryStream pdfStream = new MemoryStream(pdfBytes))
{
    var results = BarcodeReader.ReadPdf(pdfStream);
    // Process results
}
Imports System.IO

Using pdfStream As New MemoryStream(pdfBytes)
    Dim results = BarcodeReader.ReadPdf(pdfStream)
    ' Process results
End Using
$vbLabelText   $csharpLabel

Kitaplığı özel ihtiyaçlarınıza göre deneyin ve uyarlayın. IronBarcode'un esnek API'si, algılama hassasiyetini ayarlamaktan beklenen barkod formatlarını belirtmeye kadar, kapsamlı okuma süreci özelleştirmesi sağlar.

Sıkça Sorulan Sorular

Diskte kaydetmeden akışlardan barkodları nasıl okuyabilirim?

IronBarcode, barkodları doğrudan MemoryStream nesnelerinden diske kaydetmeden okumanıza izin verir. Sadece akışınızı BarcodeReader.Read() yöntemine iletin. Bu yaklaşım disk G/Ç maliyetini ortadan kaldırır ve web yüklemelerinden, veritabanlarından veya API'lardan gelen görüntüleri işlemekte idealdir.

Akışları işlerken barkod okuyucu hangi görüntü formatlarını destekliyor?

IronBarcode, akışlardan okurken JPEG, PNG, GIF, TIFF, BMP ve SVG dahil olmak üzere birden fazla görüntü formatını destekler. Bu esneklik, format dönüştürme gerektirmeden çeşitli kaynaklardan gelen barkod görüntülerini işlemenizi sağlar.

Birden fazla barkod görüntü akışını eşzamanlı olarak işleyebilir miyim?

Evet, IronBarcode, maksimum performans için birden fazla barkod akışını aynı anda işleyebilmenizi sağlayan asenkron ve çoklu iş parçacığı desteğine sahiptir. Bu, bellekte toplu barkod okuma işlemleri yaparken özellikle faydalıdır.

Bellek akışlarını dosya tabanlı barkod okumaya tercih etmenin avantajları nelerdir?

IronBarcode ile bellek akış işlemi, hız performansını artırır, disk depolama alanına asla temas etmediğinden hassas verilerin güvenliğini artırır ve disk erişiminin sınırlı veya pahalı olabileceği bulut ortamlarıyla daha iyi uyumluluk sağlar.

PDF belge akışlarından barkodları nasıl okuyabilirim?

IronBarcode hem görüntü hem de PDF belge akışlarından barkodları okuyabilir. PDF MemoryStream'inizi BarcodeReader.Read() yöntemine iletmeniz yeterlidir ve PDF sayfaları içinde bulunan tüm barkodları çıkarır ve çözer.

Akışlarla çalışırken barkod okuma sürecini ince ayarlamak mümkün mü?

Evet, IronBarcode, belirli kullanım durumunuza göre okuma sürecini optimize etmenizi sağlayan özelleştirilebilir barkod okuyucu ayarları sunar; tekli akışlar veya koleksiyonlarda depolanan birden fazla akış işleniyor olsun.

Hairil Hasyimi Bin Omar
Yazılım Mühendisi
Tüm harika mühendisler gibi, Hairil de hevesli bir öğrenendir. C#, Python ve Java bilgilerini keskinleştiriyor ve bu bilgilerini, Iron Software ekibi genelinde takım üyelerine değer katmak için kullanıyor. Hairil, Malezya'daki Universiti Teknologi MARA'dan mezun olan Ek Kimya ve Süreç Mühendisliği ...
Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 2,169,908 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package BarCode
bir örnek çalıştırın dize barkod haline geldiğini görün.