ページ数の多いGIFおよびTIFFからバーコードを読み取る方法

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

によって ハイリル ハシミ ビン オマル

IronBarcodeは、マルチページおよびマルチフレームのGIFおよびTIFF画像形式を含む、さまざまな画像形式の入力をサポートします。 これにより、ユーザーはTIFFまたはGIFファイルのフレームやページを手動で分割することなく、画像を簡単に使用することができます。これらのファイル形式を読み取るためにIronBarcodeの使用方法を探ってみましょう。

 用 C# NuGet ライブラリ

でインストール NuGet

Install-Package BarCode
または
Java PDF JAR(ジャバPDF JAR)

ダウンロード DLL (ディーエルエル)

DLLをダウンロード

プロジェクトに手動でインストールする

 用 C# NuGet ライブラリ

でインストール NuGet

Install-Package BarCode
または
Java PDF JAR(ジャバPDF JAR)

ダウンロード DLL (ディーエルエル)

DLLをダウンロード

プロジェクトに手動でインストールする

今日からプロジェクトでIronPDFを使い始めましょう。無料のトライアルをお試しください。

最初のステップ:
green arrow pointer

チェックアウト IronBarcode オン Nuget 迅速なインストールと展開のために。8百万以上のダウンロード数により、をC#で変革しています。

 用 C# NuGet ライブラリ nuget.org/packages/BarCode/
Install-Package BarCode

インストールを検討してください IronBarcode DLL 直接。ダウンロードして、プロジェクトまたはGACの形式で手動でインストールしてください。 IronBarCode.zip

プロジェクトに手動でインストールする

DLLをダウンロード

マルチフレームGIFおよびTIFF画像を読み取る

IronBarcodeを使用して多フレームのGIFおよびTIFF画像を読み取ることは、単一の画像を読み取るのと同じくらい簡単です。なぜなら、IronBarcodeはマルチページの画像ファイルをBarcodeReader.Readメソッドで容易に受け入れるからです。ユーザーは画像の準備を行う必要はありません。これら全てがライブラリ内で内部化されているためです。

以下のコード例は、複数ページのGIFおよびTIFFファイルの読み取り方法を示しています:

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-multi-page-frame-tiff-gif-read-tif.cs
using IronBarCode;
using System;

// Read barcode from TIF image
BarcodeResults results = BarcodeReader.Read("sample.tif");

// Output the barcodes value to console
foreach (var result in results)
{
    Console.WriteLine(result.Value);
}
Imports IronBarCode
Imports System

' Read barcode from TIF image
Private results As BarcodeResults = BarcodeReader.Read("sample.tif")

' Output the barcodes value to console
For Each result In results
	Console.WriteLine(result.Value)
Next result
VB   C#

画像をGIFおよびTIFF形式に変換

オープンソースライブラリを利用して画像を複数ページのTIFFおよびGIFに変換する方法を学びましょう。 アイアンドローイング (アイアンドローイング (IronDrawing)). では、以下のコード例を見てみましょう。マルチページのGIFまたはTIFF画像を生成する方法です。

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-multi-page-frame-tiff-gif-create-tiff-gif.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Collections.Generic;

// Import images
List<AnyBitmap> images = new List<AnyBitmap>()
{
    AnyBitmap.FromFile("image1.png"),
    AnyBitmap.FromFile("image2.png"),
    AnyBitmap.FromFile("image3.png"),
    AnyBitmap.FromFile("image4.jpg"),
    AnyBitmap.FromFile("image5.jpg")
};

// Convert TIFF from images
AnyBitmap tiffImage = AnyBitmap.CreateMultiFrameTiff(images);

// Export TIFF
tiffImage.SaveAs("multiframetiff.tiff");

// Convert GIF from images
AnyBitmap gifImage = AnyBitmap.CreateMultiFrameGif(images);

// Export GIF
gifImage.SaveAs("multiframegif1.gif");
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Collections.Generic

' Import images
Private images As New List(Of AnyBitmap)() From {AnyBitmap.FromFile("image1.png"), AnyBitmap.FromFile("image2.png"), AnyBitmap.FromFile("image3.png"), AnyBitmap.FromFile("image4.jpg"), AnyBitmap.FromFile("image5.jpg")}

' Convert TIFF from images
Private tiffImage As AnyBitmap = AnyBitmap.CreateMultiFrameTiff(images)

' Export TIFF
tiffImage.SaveAs("multiframetiff.tiff")

' Convert GIF from images
Dim gifImage As AnyBitmap = AnyBitmap.CreateMultiFrameGif(images)

' Export GIF
gifImage.SaveAs("multiframegif1.gif")
VB   C#

上記のコードスニペットから、複数の画像ファイルを AnyBitmap オブジェクトのリストにインポートしてグループ化することができます。 このリストは、AnyBitmap.CreateMultiFrameTiff メソッドおよび AnyBitmap.CreateMultiFrameGif メソッドを呼び出す際のパラメータとして使用でき、それぞれマルチページTIFFおよびマルチページGIFオブジェクトを取得することができます。

複数ページのGIFとTIFFの両方が画像を単一のファイルにまとめる方法を提供しますが、以下に示すように、これらのフォーマットにはいくつかの違いがあります。

側面 複数ページGIF マルチページTIFF
圧縮 GIF画像は無損失圧縮を使用しており、圧縮中に画像データが失われることはありません。このため、損失圧縮を使用する形式と比較して、ファイルサイズが相対的に大きくなります。 TIFFファイルは、LZWのような可逆圧縮やJPEGのような非可逆圧縮など、さまざまな圧縮方法を使用することができます。この柔軟性により、TIFFファイルはファイルサイズと画像品質のバランスを取ることができます。
カラーデプス GIFは最大256色(8ビットのカラービット深度)をサポートしており、他のフォーマットと比べると制約があります。この制限されたカラーパレットにより、特に写真やグラデーションが含まれる画像では、詳細や色の正確さが失われることがあります。 TIFFは、1ビット(バイナリ)、8ビット(256色)、24ビット(トゥルーカラー)などの様々なカラーデプスをサポートしています。この柔軟性により、TIFFは異なるレベルのカラーディテールを持つ画像を保存することができます。
透明性 GIFはバイナリの透明度をサポートしており、特定の1色を完全に透明にすることができますが、その他の色は完全に不透明になります。この部分的な透明度の欠如は、滑らかな変化を持つ画像のエッジがギザギザになることがあります。 TIFFは、バイナリ透過(GIFに類似)やアルファチャンネル透過を含む複数の透過形式をサポートしています。アルファチャンネル透過はスムーズなトランジションや半透明のピクセルを可能にし、高品質な透過効果を提供します。
アニメーション GIFは、複数のフレームを1つのファイルにまとめることで、シンプルなアニメーションをサポートします。各フレームにはそれぞれの時間遅延を設定でき、基本的な形のアニメーションを作り出します。GIFアニメーションはウェブ上で広くサポートされています。 TIFFはアニメーション用に設計されているわけではありません。複数の画像を保存することはできますが、GIFのような組み込みのアニメーションサポートがありません。マルチページのTIFFファイルの各ページは通常、アニメーションシーケンスのフレームではなく、別々の画像です。

高度なバーコード読み取り

IronBarcodeはすぐに使えるようになっていますが、いくつかの画像については、正確かつ高速なバーコード読み取りを実現するためにBarcodeReaderOptionsクラスの設定が必要になる場合があります。 以下のクラスに関する詳細情報は、「画像ファイル (jpg、png、gif、tiff、svg、bmp) からバーコードを読み取る方法記事。

以下のコードスニペットは、BarcodeReaderOptionsクラスで設定可能な必要なプロパティの例を提供します。

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-multi-page-frame-tiff-gif-advance.cs
using IronBarCode;
using System;

// Configure filters
ImageFilterCollection filters = new ImageFilterCollection()
{
    new SharpenFilter(3.5f),
    new ContrastFilter(2)
};

// Configure options
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectBarcodeTypes = IronBarCode.BarcodeEncoding.QRCode,
    ImageFilters = filters,
    ExpectMultipleBarcodes = true,
    Speed = ReadingSpeed.Balanced
};

// Read barcode from TIF image
BarcodeResults results = BarcodeReader.Read("sample.tif", options);

// Output the barcodes value to console
foreach (var result in results)
{
    Console.WriteLine(result.Value);
}
Imports IronBarCode
Imports System

' Configure filters
Private filters As New ImageFilterCollection() From {
	New SharpenFilter(3.5F),
	New ContrastFilter(2)
}

' Configure options
Private options As New BarcodeReaderOptions() With {
	.ExpectBarcodeTypes = IronBarCode.BarcodeEncoding.QRCode,
	.ImageFilters = filters,
	.ExpectMultipleBarcodes = True,
	.Speed = ReadingSpeed.Balanced
}

' Read barcode from TIF image
Private results As BarcodeResults = BarcodeReader.Read("sample.tif", options)

' Output the barcodes value to console
For Each result In results
	Console.WriteLine(result.Value)
Next result
VB   C#

コードスニペットでは、BarcodeReaderOptionsプロパティを設定するだけでなく、特にSharpenFilterContrastFilterというフィルターを適用しています。 これらのフィルターは、バーコードの検出および読み取りのためにぼやけた画像の鮮明度を向上させるのに役立ちます。 「画像補正フィルターに関する詳細情報は、」で見つけることができます画像補正フィルターの使用方法記事。

BarcodeReaderOptions オブジェクトについて、IronBarcodeが画像ファイル内のすべてのバーコードをスキャンするようにユーザーが ExpectMultipleBarcodes を含めること、読み取りの精度とパフォーマンスのバランスを取るために Speed を使用すること、さらにパフォーマンスを向上させるために ExpectBarcodeTypes を設定すること、読み取り精度のために ImageFilterCollection オブジェクトで設定されたフィルターを適用する ImageFilters を含めることをお勧めします。

BarcodeReaderOptions オブジェクトの設定はほとんどの使用ケースで任意ですが、複数ページのGIFおよびTIFF画像ファイルからバーコードを読み取る際にIronBarcodeの性能を最大限に引き出すために重要です。

ハイリル ハシミ ビン オマル

ソフトウェアエンジニア

すべての優れたエンジニアと同じように、Hairilは熱心な学習者です。C#、Python、およびJavaの知識を洗練させ、その知識を活かしてIron Softwareのチームメンバーに価値を提供しています。Hairilはマレーシアのマラ工科大学(Universiti Teknologi MARA)で化学およびプロセス工学の学士号を取得し、Iron Softwareチームに加わりました。