C#で複数ページの GIF や TIFF から BarCode を読み取る方法
IronBarcodeは、マニュアルでのフレーム分割なしにマルチページTIFFおよびアニメーションGIFファイルを自動的に処理し、BarcodeReader.Readメソッド呼び出しを使用して、画像ファイルのすべてのフレームまたはページからすべてのバーコードを抽出します。
IronBarcodeはマルチページのTIFFまたはアニメーションGIFファイルを読み込み、1回のメソッド呼び出しですべてのバーコードを抽出します。 ファイルパスを[]に渡すだけで、フレーム分割や手動での前処理は不要で、迅速な結果が得られます。
-
1Install IronBarcode with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
IronBarCode.BarcodeResults results = IronBarCode.BarcodeReader.Read("multiPageImage.tiff");C# -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronBarcode を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- バーコード読み取り用のC#ライブラリをダウンロードする
- バーコード検出のための GIF および TIFF 画像の準備
- マルチフレームGIFおよびTIFF画像を
Readメソッドに渡す - 精度とパフォーマンスを向上させるために画像フィルターとオプションを適用する
- 画像をマルチフレーム GIF および TIFF に変換する
マルチフレーム GIF および TIFF 画像を読むにはどうすればよいですか?
IronBarcodeを使用してマルチフレームGIFおよびTIFF画像を読み取ることは、単一の画像を読み取るのと同じくらい簡単です。IronBarcodeはマルチページ画像ファイルを[]メソッドに適用します。 すべての処理はライブラリに組み込まれているため、画像を準備する必要はありません。 IronBarcodeの機能の包括的な概要については、機能ページをご覧ください。
なぜIronBarcodeはマルチフレーム画像を自動的に処理するのですか?
IronBarcodeはマルチフレーム画像を自動的に処理し、ワークフローを簡素化します。 従来のバーコード読み取りライブラリは、処理前にGIFアニメーションから個々のフレームを抽出したり、TIFFファイルからページを分離したりする必要があることが多い。 これは、不必要な複雑さと潜在的な失敗のポイントを追加します。 IronBarcodeのインテリジェントなフレーム検出は、内部で画像構造を解析し、各フレームまたはページを自動的に繰り返し処理することにより、この負担を軽減します。 このアプローチは、最適化されたメモリ管理によって高いパフォーマンスを維持しながら、フレーム数に関係なく一貫した結果を保証します。
以下のコード例では、マルチページのGIFファイルとTIFFファイルの読み取りを実演しています:
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を作成する際、ライブラリは圧縮設定を最適化し、ファイルサイズと画質のバランスをとる。
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.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 読み取りオプションはどのように設定できますか?
IronBarcodeはそのままでも直接動作しますが、一部の画像では正確で迅速なバーコードの読み取りを達成するためにBarcodeReaderOptionsクラスを設定する必要があるかもしれません。 画像ファイル(jpg, png, gif, tiff, svg, bmp)からBarCodeを読み取る方法"の記事で、このクラスに関する詳細な情報を見つけてください。 詳細な API ドキュメントについては、BarcodeReaderOptions reference を参照してください。
精度を高めるには、どのような場合に画像フィルタを使用すればよいですか?
画像フィルタは、最適でない画質を扱う場合に不可欠です。これは、フレームによって画質が異なる可能性のあるマルチフレームファイルでよくあるシナリオです。 スキャナーの制限によりバーコードがぼやけて見えたり、照明条件が悪いためにコントラストが低かったり、圧縮アーチファクトによるノイズが含まれていたりする場合は、フィルターを適用します。 IronBarcode の画像補正機能には、さまざまな光条件に対する適応閾値処理、モーションブラーに対するシャープニングフィルタ、色あせたプリントに対するコントラスト強調などがあります。 マルチフレームファイルの場合、手作業による介入なしにフレーム間の画質のばらつきを補正するフィルターが特に有用です。
以下のコードスニペットはBarcodeReaderOptionsクラス内のプロパティ設定を示しています:
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.Fastestを使用します—管理された環境での印刷が良好なバーコードに最適です。 正確さが重要なミッションクリティカルなアプリケーションには、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を含むスキャン文書の処理に特に効果的です。
What advanced barcode reading options are available?
IronBarcode offers BarcodeReaderOptions where you can configure filters, expect certain barcode types, and adjust reading speeds to optimize performance and accuracy for multipage image files.
What performance settings should I consider for multipage images?
Balance speed and accuracy using settings like ReadingSpeed.Faster for quicker processing, or ReadingSpeed.Detailed for higher accuracy. Consider asynchronous reading to enhance performance in high-volume scenarios.
How can image filters improve barcode reading accuracy?
Apply image filters like sharpening or contrast enhancement with IronBarcode to improve barcode detection in images with low quality or challenging conditions, ensuring consistent results across frames.
What common troubleshooting steps can resolve barcode reading failures?
For failed reads, ensure individual frame quality, check for recognition issues like skewed or damaged barcodes, and verify barcode compatibility. Adjust reading speed settings or use orientation correction for improved results.
