C# でマルチページ GIF および TIFF 画像からバーコードを読み取る方法

C# で複数ページの GIF および TIFF からバーコードを読み取る方法

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

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

クイックスタート:マルチページ TIFF または GIF ファイルからバーコードを完全に読み取る

IronBarcode は、単純なメソッド呼び出し一回でマルチページ TIFF やアニメーション GIF を読み込み、すべてのバーコードを抽出できます。 フレームの分割や手動の前処理は不要で、ファイルパスを BarcodeReader.Read に渡すだけで、迅速な結果が得られます。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronBarcode をインストールします

    PM > Install-Package BarCode

  2. このコード スニペットをコピーして実行します。

    IronBarCode.BarcodeResults results = IronBarCode.BarcodeReader.Read("multiPageImage.tiff");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronBarcode を使い始めましょう
    arrow pointer

マルチフレーム 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
$vbLabelText   $csharpLabel

画像を GIF および TIFF に変換

オープンソースのライブラリ IronDrawing を使用して、画像をマルチページ TIFF および GIF に変換する方法を学びます。 次に、マルチページ 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")
$vbLabelText   $csharpLabel

上のコードスニペットから、まず画像ファイルを 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アニメーションはWeb上で広くサポートされています。 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
$vbLabelText   $csharpLabel

コードスニペットでは、BarcodeReaderOptions のプロパティを設定するだけでなく、SharpenFilter および ContrastFilter などのいくつかのフィルターも適用しています。 これらのフィルターは、バーコード検出と読み取りのためにぼやけた画像の明瞭さを向上させるのに役立ちます。 画像修正フィルターについての詳細は '画像修正フィルターの使用法' 記事に記載されています。

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

多くの使用ケースにおいて BarcodeReaderOptions オブジェクトを設定するのは オプションですが、マルチページ GIF および TIFF 画像ファイルからバーコードを読み取る際に IronBarcode を最大限に活用するためには、重要です。

よくある質問

C# でマルチページ GIF および TIFF ファイルからバーコードを読み取るにはどうすればよいですか?

BarcodeReader.Read メソッドを使用して、IronBarcode を使用してマルチページ GIF および TIFF ファイルからバーコードを読み取ることができます。画像ファイルをメソッドに渡すだけで、IronBarcode がマルチページまたはマルチフレーム画像をスムーズに処理します。

マルチページ画像ファイルを読み取るために IronBarcode を使用する利点は何ですか?

IronBarcode は、フレームやページを手動で分離することなく、マルチページ画像ファイルを直接受け入れることで、読み取りプロセスを簡素化します。また、画像フィルターや BarcodeReaderOptions などの高度なオプションを提供して、読み取り精度を向上させます。

IronBarcode でバーコードの読み取り精度を向上させるために画像フィルターを使用することはできますか?

はい、IronBarcode ではグレースケール、シャープフィルター、コントラストフィルターなどの画像フィルターを適用して、画像の明瞭さを高め、バーコードの読み取り精度を向上させることができます。

IronBarcode では、1 つの画像で複数のバーコードを読み取ることは可能ですか?

はい、IronBarcode では、BarcodeReaderOptions クラス内の ExpectMultipleBarcodes オプションを有効にすることで、1 つの画像で複数のバーコードを検出できます。

C# を使用して画像をマルチページ TIFF または GIF に変換するにはどうすればよいですか?

IronDrawing ライブラリを使用して、画像をマルチページ TIFF または GIF 形式に変換できます。画像を AnyBitmap オブジェクトのリストにインポートし、AnyBitmap.CreateMultiFrameTiff または AnyBitmap.CreateMultiFrameGif メソッドを使用します。

マルチページ GIF と TIFF 形式の違いは何ですか?

マルチページ GIF はロスレス圧縮を使用し、シンプルなアニメーションをサポートしていますが、256 色に制限されています。マルチページ TIFF はさまざまな圧縮方法、より高い色深度、および透過オプションをサポートしていますが、アニメーション用に設計されていません。

IronBarcode でバーコードを読み取る前に画像を前処理する必要がありますか?

前処理は必要ありません。IronBarcode は、手動での準備を必要とせずに、マルチページ画像ファイルを直接処理して読み取ることができます。

IronBarcode を使用して高度なバーコード読み取り技術を適用するにはどうすればよいですか?

IronBarcode での高度なバーコード読み取りは、BarcodeReaderOptions クラスを設定することで実現できます。ExpectMultipleBarcodesSpeed、および ImageFilters などのオプションを設定して、パフォーマンスと精度を最適化できます。

Hairil Hasyimi Bin Omar
ソフトウェアエンジニア
すべての優れたエンジニアのように、ハイリルは熱心な学習者です。彼はC#、Python、Javaの知識を磨き、その知識を活用してIron Softwareのチームメンバーに価値を追加しています。ハイリルはマレーシアのマラ工科大学からIron Softwareのチームに参加し、化学およびプロセス工学の学士号を取得しました。
準備はできましたか?
Nuget ダウンロード 1,979,979 | Version: 2025.11 リリース