C#で複数ページの GIF や TIFF から BarCode を読み取る方法
IronBarcode は、単一の BarcodeReader.Read メソッド呼び出しを使用して、手動でフレームを分離することなく、複数ページの TIFF ファイルとアニメーション GIF ファイルを自動的に処理し、画像ファイル内のすべてのフレームまたはページからすべてのバーコードを抽出します。
クイックスタート: 複数ページの TIFF または GIF ファイルからバーコード全体を読み取る
IronBarcodeはマルチページのTIFFまたはアニメーションGIFファイルを読み込み、1回のメソッド呼び出しですべてのバーコードを抽出します。 フレーム分割や手動の前処理は不要です。結果をすばやく得るには、ファイル パスを BarcodeReader.Read に渡します。
最小限のワークフロー(5ステップ)
- バーコード読み取り用のC#ライブラリをダウンロードする
- バーコード検出のための GIF および TIFF 画像の準備
- マルチフレームGIFおよびTIFF画像を`Read`メソッドに渡す
- 精度とパフォーマンスを向上させるために画像フィルターとオプションを適用する
- 画像をマルチフレーム GIF および TIFF に変換する
マルチフレーム GIF および TIFF 画像を読むにはどうすればよいですか?
IronBarcode は、マルチページの画像ファイルを BarcodeReader.Read メソッドで簡単に受け入れることができるため、 IronBarcodeを使用してマルチフレームの GIF および TIFF 画像を読み取るのは、単一の画像を読み取るのと同じくらい簡単です。 すべての処理はライブラリに組み込まれているため、画像を準備する必要はありません。 IronBarcodeの機能の包括的な概要については、機能ページをご覧ください。
なぜIronBarcodeはマルチフレーム画像を自動的に処理するのですか?
IronBarcodeはマルチフレーム画像を自動的に処理し、ワークフローを簡素化します。 従来のバーコード読み取りライブラリは、処理前にGIFアニメーションから個々のフレームを抽出したり、TIFFファイルからページを分離したりする必要があることが多い。 これは、不必要な複雑さと潜在的な失敗のポイントを追加します。 IronBarcodeのインテリジェントなフレーム検出は、内部で画像構造を解析し、各フレームまたはページを自動的に繰り返し処理することにより、この負担を軽減します。 このアプローチは、最適化されたメモリ管理によって高いパフォーマンスを維持しながら、フレーム数に関係なく一貫した結果を保証します。
以下のコード例では、マルチページの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
マルチページ読み取りに対応している画像形式は何ですか?
IronBarcodeのマルチページ読み取り機能は、GIFやTIFFフォーマットだけではありません。 このライブラリは、JPEG、PNG、BMP、単一ページ画像用のSVGなど、すべての標準画像形式をサポートしています。 特にマルチページのサポートについては、TIFFとアニメーションGIFが主なフォーマットです。 TIFFは、さまざまな圧縮方式で複数のフル解像度画像を保存できるため、特に汎用性が高く、文書のスキャニングシーンに最適です。 アニメーションGIFは、256色に制限されていますが、コンパクトでウェブに適した形式で複数のバーコードフレームを保存するのに優れています。 専門的なニーズには、バーコードが埋め込まれた複数のページを含むことが多い PDF 文書からバーコードを読み取ることもできます。
バーコードのスキャンにマルチフレーム画像を使用するのはどのような場合ですか?
マルチフレーム画像は、いくつかのビジネスシナリオに最適です。 文書管理システムでは、スキャンした請求書、出荷書類、または各ページに異なるBarCodeが含まれる可能性のあるフォームを保存するために、複数ページのTIFFファイルを標準として使用します。 製造およびロジスティクス業務では、複数の BarCode の状態や連続したスキャン手順を示す視覚的なワークフローを作成するために、アニメーション GIF を使用することがよくあります。 バッチ処理アプリケーションでは、ファイル管理のオーバーヘッドを減らすことができるため、マルチフレーム形式のメリットがあります。さらに、ストリームからの BarCode 読み取りを実装する場合、マルチフレーム形式はメモリ割り当てを大幅に削減し、パフォーマンスを向上させます。
画像を GIF や TIFF に変換するにはどうすればよいですか?
私たちのオープンソースライブラリ、IronDrawingを使って画像をマルチページTIFFやGIFに変換する方法を学びましょう。 以下のコード例は、マルチページのGIFまたはTIFF画像を生成する方法を示しています。 この機能は、効率的な処理のために、さまざまなソースから複数の BarCode 画像を 1 つのファイルに統合する場合に特に役立ちます。
マルチフレーム TIFF ファイルを作成するプロセスは何ですか?
マルチフレームTIFFファイルを作成するには、複数の画像ソースを1つのTIFFコンテナにまとめる必要があります。 個々の画像をビットマップオブジェクトとしてメモリにロードすることから始めます。 IronDrawing の AnyBitmap クラスは、さまざまな画像形式を処理し、形式変換を自動的に管理し、互換性を確保するための統一されたインターフェイスを提供します。 マルチフレーム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")
上記のコード スニペットでは、まず画像ファイルを AnyBitmap オブジェクトのリストにインポートしてグループ化します。 AnyBitmap.CreateMultiFrameTiff メソッドと AnyBitmap.CreateMultiFrameGif メソッドを呼び出して、それぞれマルチページ TIFF オブジェクトとマルチページ GIF オブジェクトを取得するときに、このリストをパラメータとして使用します。
バーコード ストレージの GIF と TIFF フォーマットの違いは何ですか?
マルチページGIFもTIFFも、画像を1つのファイルにまとめる方法を提供しますが、両者は大きく異なります:
| アスペクト | マルチページ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ファイルの各ページは、通常、アニメーションシーケンス内のフレームではなく、独立した画像です。 |
マルチページバーコード画像にはどの形式を選べばよいですか?
特定のユースケースに基づいて、GIFとTIFFのどちらかを選択してください。 ドキュメントアーカイブやプロフェッショナルスキャニングアプリケーションなど、細部まで正確に保存する必要がある高解像度のBarCode画像を扱う場合は、TIFFを選択してください。 TIFF はさまざまな圧縮方式と色深度をサポートしているため、2D Data Matrix コードのような細かいディテールを含む、さまざまな種類のバーコードの品質を維持するのに理想的です。
ファイルサイズが気になり、バーコードがCode 39やCode 128のような単純な線形形式である場合は、GIFを選択してください。GIFはウェブとの互換性が高いため、ユーザーがバーコードシーケンスをプレビューするようなオンラインアプリケーションに適しています。 ただし、複雑なQRコードやカラーグラデーションのあるBarCodeは、256色の制限が読みやすさに影響する可能性があるため、GIFは避けてください。
ファイルサイズの注意点は何ですか?
ファイルサイズはフォーマットによって大きく異なり、保存、送信、処理速度に影響します。 可逆圧縮のTIFFファイルは、通常、バーコード画像1枚あたり10~50KB、300DPIで、アーカイブ品質に適しています。 TIFF内のJPEG圧縮により、バーコードの可読性を維持したまま、サイズを70~80%縮小することができます。 GIFファイルは一般的に小さく、カラーパレットが限られているため、標準的なバーコードの場合、1フレームあたり平均5~15KBです。 特定のパフォーマンス要件でBarCode読み取りを実装する場合、ファイルが小さいほど処理が速くなりますが、エッジケースでは精度が犠牲になる可能性があることを考慮してください。
高度な BarCode 読み取りオプションはどのように設定できますか?
IronBarcode はそのまますぐに使用できますが、一部の画像では、正確で高速なバーコード読み取りを実現するために、BarcodeReaderOptions クラスを構成する必要がある場合があります。 画像ファイル(jpg, png, gif, tiff, svg, bmp)からBarCodeを読み取る方法"の記事で、このクラスに関する詳細な情報を見つけてください。 詳細な API ドキュメントについては、BarcodeReaderOptions reference を参照してください。
精度を高めるには、どのような場合に画像フィルタを使用すればよいですか?
画像フィルタは、最適でない画質を扱う場合に不可欠です。これは、フレームによって画質が異なる可能性のあるマルチフレームファイルでよくあるシナリオです。 スキャナーの制限によりバーコードがぼやけて見えたり、照明条件が悪いためにコントラストが低かったり、圧縮アーチファクトによるノイズが含まれていたりする場合は、フィルターを適用します。 IronBarcode の画像補正機能には、さまざまな光条件に対する適応閾値処理、モーションブラーに対するシャープニングフィルタ、色あせたプリントに対するコントラスト強調などがあります。 マルチフレームファイルの場合、手作業による介入なしにフレーム間の画質のばらつきを補正するフィルターが特に有用です。
以下のコード スニペットは、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
マルチページ ファイルにはどのようなパフォーマンス設定を使用すればよいですか?
マルチページファイルのパフォーマンスを最適化するには、要件に基づいて速度と精度のバランスを取る必要があります。 速度が重要となる大量処理の場合は、ReadingSpeed.Faster または ReadingSpeed.Fastest を使用します。これにより、スキャンの徹底性は低下しますが、スループットは大幅に向上します。これは、制御された環境できれいに印刷されたバーコードに最適です。 精度が最重要となるミッションクリティカルなアプリケーションでは、ReadingSpeed.Detailed の設定により、処理時間は長くなりますが、最大限の検出率を確保できます。ReadingSpeed.Balanced の設定は、ほとんどのビジネスアプリケーションに最適な中間的な設定です。 マルチページ ファイルを処理するときは、非同期読み取りパターンを実装してフレームを並列処理し、全体のスループットを劇的に向上させることを検討してください。
読む速度と正確さを最適化するにはどうすればよいですか?
スピードと精度のトレードオフを最適化するには、いくつかの戦略的な設定が必要です。 まず、ExpectBarcodeTypes を使用して予想されるバーコード タイプを指定して、不要な形式チェックを排除します。これだけで速度が 40 ~ 60% 向上します。 次に、バーコードがフレーム間で一貫した位置に表示される場合は、クロップ領域を使用し、検索領域を減らします。 3 番目に、フレームの並列処理を最適化するために、CPU 機能に合わせて MaxParallelThreads プロパティを調整します。 精度を最適化するために、フレームに複数のバーコードが含まれている可能性がある場合は ExpectMultipleBarcodes を有効にし、画像の特性に基づいて適切な画像フィルターを適用します。 ML信頼度しきい値機能は、複雑な画像の誤検出をフィルタリングするのにも役立ちます。
読み取り失敗の一般的なトラブルシューティング手順は何ですか?
マルチフレームファイルの読み込みに失敗した場合は、この体系的なアプローチに従ってください。 まず、単一フレームを抽出してテストすることで、個々のフレームの品質を確認します。個々のフレームが失敗する場合、問題はマルチフレーム固有のものではありません。 不十分なクワイエットゾーン、傾いた BarCode、破損したシンボルなどの一般的な認識問題がないか確認してください。 処理が難しいバーコードの場合は、TryHarder モードを有効にしてください。ただし、処理時間は長くなります。問題が解決しない場合は、回転したバーコードが失敗することが多いため、画像の向きを修正してください。 通常、BarCodeは200~300DPIで最も読みやすく、400DPIを超えると読みやすさが低下します。 特定の BarCode タイプで問題が解決しない場合は、supported formats documentation を参照して互換性を確認してください。
BarcodeReaderOptions オブジェクトの設定はほとんどのユースケースではオプションですが、複数ページの GIF および TIFF 画像ファイルからバーコードを読み取るときにIronBarcodeを最大限に活用するのに役立ちます。 本番環境では、デフォルトの設定から始め、特定のパフォーマンス指標と精度の要件に基づいて徐々に最適化してください。
よくある質問
C#で複数ページのTIFFファイルからBarCodeを読み取るには?
IronBarcodeを使用すると、単一のメソッドコールで複数ページのTIFFファイルからバーコードを読み取ることができます:BarcodeReader.Read("multiPageImage.tiff")。IronBarcodeはTIFFファイルの各ページを自動的に処理するため、手動でのフレーム分割や前処理を必要としません。
アニメーションGIFファイルからBarCodeを抽出できますか?
はい、IronBarcodeはアニメーションGIFファイルのすべてのフレームから自動的にバーコードを抽出します。単にGIFファイルのパスをBarCodeReader.Readメソッドに渡すだけで、IronBarcodeは内部で各フレームを解析し、存在するすべてのバーコードを検出して読み取ります。
複数ページの画像から BarCode を読み取る前に、手動でフレームを分割する必要がありますか?
いいえ、IronBarcodeは手作業によるフレーム分割を不要にします。このライブラリのインテリジェントなフレーム検出は、自動的に画像構造を解析し、各フレームまたはページを内部的に繰り返し処理するため、ワークフローが簡素化され、潜在的な障害点が減少します。
マルチページバーコードの読み取りをサポートする画像形式は?
IronBarcodeは主にTIFFとアニメーションGIFフォーマットのマルチページバーコードの読み取りをサポートしています。このライブラリはJPEG、PNG、BMP、SVGのようなシングルページ形式も扱いますが、TIFFとGIFは自動フレーム検出によりマルチページ処理に最適化されています。
複数ページの画像から BarCode を読み取るには、何ステップ必要ですか?
IronBarcodeは5つの簡単なステップを必要とします:C#ライブラリをダウンロードし、GIFやTIFF画像を準備し、Readメソッドに渡し、オプションで精度を上げるために画像フィルターを適用し、必要であれば画像をマルチフレームフォーマットに変換します。
なぜTIFF形式がマルチページバーコードスキャンに特に適しているのですか?
TIFFフォーマットは様々な圧縮方法で複数のフル解像度の画像を保存できるため、IronBarcodeを使用したドキュメントスキャニングシナリオに最適です。この汎用性により、TIFFは複数のページにまたがるBarCodeを含むスキャン文書の処理に特に効果的です。

