ページ数の多いGIFおよびTIFFからバーコードを読み取る方法
IronBarcodeは、マルチページおよびマルチフレームのGIFおよびTIFF画像形式を含む、さまざまな画像形式の入力をサポートします。 これにより、ユーザーはTIFFまたはGIFファイルのフレームやページを手動で分割することなく、画像を簡単に使用することができます。これらのファイル形式を読み取るためにIronBarcodeの使用方法を探ってみましょう。
ページ数の多いGIFおよびTIFFからバーコードを読み取る方法
- バーコードを読み取るためのC#ライブラリをダウンロード
- バーコード検出のためにGIFおよびTIFF画像を準備する
- マルチフレームのGIFおよびTIFF画像を渡します。
読み取り
メソッド - フィルターとオプションを適用し、精度とパフォーマンスを向上させる
- 画像をマルチフレームGIFおよびTIFFに変換
IronBarcodeを始める
今日から無料トライアルでIronBarcodeをあなたのプロジェクトで使い始めましょう。
マルチフレーム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
画像を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")
上記のコードスニペットから、複数の画像ファイルを 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
コードスニペットでは、BarcodeReaderOptions
プロパティを設定するだけでなく、特にSharpenFilter
とContrastFilter
というフィルターを適用しています。 これらのフィルターは、バーコードの検出および読み取りのためにぼやけた画像の鮮明度を向上させるのに役立ちます。 「画像補正フィルターに関する詳細情報は、」で見つけることができます画像補正フィルターの使用方法記事。
BarcodeReaderOptions
オブジェクトについて、IronBarcodeが画像ファイル内のすべてのバーコードをスキャンするようにユーザーが ExpectMultipleBarcodes
を含めること、読み取りの精度とパフォーマンスのバランスを取るために Speed
を使用すること、さらにパフォーマンスを向上させるために ExpectBarcodeTypes
を設定すること、読み取り精度のために ImageFilterCollection
オブジェクトで設定されたフィルターを適用する ImageFilters
を含めることをお勧めします。
BarcodeReaderOptions
オブジェクトの設定はほとんどの使用ケースで任意ですが、複数ページのGIFおよびTIFF画像ファイルからバーコードを読み取る際にIronBarcodeの性能を最大限に引き出すために重要です。