如何從 System.Drawing 對象讀取條碼
System.Drawing 物件在 .NET 中被開發者廣泛用於與圖像處理相關的任務。 然而,Microsoft已经停止支援System.Drawing在其他作業系統上,例如MacOS和Linux,現在僅支持Windows。 這一重大變化對於在Windows以外的作業系統上使用IronBarcode的開發者們造成了多個問題。 這是因為處理條碼通常涉及使用像是圖形、圖像和字體這樣的物件。
為了解決這個問題,我們引入了一個替代方案:鐵繪圖. 這個由IronSoftware發起的免費且開源的庫,旨在簡化這個過程使它在操作系統上運作除了Windows之外。 這為我們的用戶提供了友好的使用體驗。 一旦您從 NuGet 安裝 IronBarcode,IronDrawing 將自動包含在您的項目中。
開始使用 IronBarcode
立即在您的專案中使用IronBarcode,並享受免費試用。
如何從 System.Drawing 對象讀取條碼
- 下載用於從 System.Drawing 讀取條碼的 C# 庫
- 使用IronDrawing將System.Drawing物件轉換為AnyBitmap
- 使用
讀取
從 AnyBitmap 物件讀取條碼的方法 - 在控制台上顯示偵測到的條碼值
- 探索其他文章,了解 IronDrawing 如何用於處理顏色和字體
將 System.Drawing 轉換為 AnyBitmap
從 System.Drawing 讀取條碼只需將對象轉換成 AnyBitmap。IronDrawing 的設計考慮到了易用性。 因此,IronDrawing 支持將圖像對象從 System.Drawing 隱式轉換為稱為 AnyBitmap 的 IronSoftware.Drawing 圖像對象。
除了 System.Drawing 物件外,我們還支援從其他類型的物件轉換,包括:
- System.Drawing.Bitmap
System.Drawing.Image
SkiaSharp.SKBitmap
- SkiaSharp.SKImage
SixLabors.ImageSharp
使用者可以參考以下内容程式碼範例針對上述物件進行轉換。 以下是一段代碼片段,展示如何將條碼的圖像從System.Drawing對象轉換為IronSoftware.Drawing.AnyBitmap。
:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-system-drawing-cast-to-anybitmap.cs
using IronSoftware.Drawing;
using System.Collections.Generic;
List<AnyBitmap> barcodes = new List<AnyBitmap>();
// Instantiate System.Drawing.Bitmap
System.Drawing.Bitmap bitmapFromBitmap = new System.Drawing.Bitmap("test1.jpg");
// Cast from System.Drawing.Bitmap to AnyBitmap
AnyBitmap barcode1 = bitmapFromBitmap;
barcodes.Add(barcode1);
// Instantiate System.Drawing.Bitmap
System.Drawing.Image bitmapFromFile = System.Drawing.Image.FromFile("test2.png");
// Cast from System.Drawing.Image to AnyBitmap
AnyBitmap barcode2 = bitmapFromFile;
barcodes.Add(barcode2);
Imports IronSoftware.Drawing
Imports System.Collections.Generic
Private barcodes As New List(Of AnyBitmap)()
' Instantiate System.Drawing.Bitmap
Private bitmapFromBitmap As New System.Drawing.Bitmap("test1.jpg")
' Cast from System.Drawing.Bitmap to AnyBitmap
Private barcode1 As AnyBitmap = bitmapFromBitmap
barcodes.Add(barcode1)
' Instantiate System.Drawing.Bitmap
Dim bitmapFromFile As System.Drawing.Image = System.Drawing.Image.FromFile("test2.png")
' Cast from System.Drawing.Image to AnyBitmap
Dim barcode2 As AnyBitmap = bitmapFromFile
barcodes.Add(barcode2)
從上面的代碼片段中,我們加載了兩個條形碼圖像作為System.Drawing.Bitmap和System.Drawing.Image。 我們通過將它們賦值給AnyBitmap對象,隱式地將它們轉換為AnyBitmap。 隨後,我們將這些對象添加到 AnyBitmap 列表中。
從任何圖位圖讀取條碼
IronBarcode 可以在其所有方法中輕鬆接受 IronSoftware.Drawing.AnyBitmap 對象,無需任何額外配置。 這為使用IronBarcode與System.Drawing物件的開發者提供了便利,而這些物件不支持Windows以外的操作系統。 以下程式碼片段示範了如何做到這一點。
:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-system-drawing-read-anybitmap.cs
using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
List<AnyBitmap> barcodes = new List<AnyBitmap>();
System.Drawing.Bitmap bitmapFromBitmap = new System.Drawing.Bitmap("test1.jpg");
AnyBitmap barcode1 = bitmapFromBitmap;
barcodes.Add(barcode1);
System.Drawing.Image bitmapFromFile = System.Drawing.Image.FromFile("test2.png");
AnyBitmap barcode2 = bitmapFromFile;
barcodes.Add(barcode2);
foreach (var barcode in barcodes)
{
// Read the barcode
var results = BarcodeReader.Read(barcode);
foreach (var result in results)
{
// Output the detected barcode value
Console.WriteLine(result.Value);
}
}
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic
Private barcodes As New List(Of AnyBitmap)()
Private bitmapFromBitmap As New System.Drawing.Bitmap("test1.jpg")
Private barcode1 As AnyBitmap = bitmapFromBitmap
barcodes.Add(barcode1)
Dim bitmapFromFile As System.Drawing.Image = System.Drawing.Image.FromFile("test2.png")
Dim barcode2 As AnyBitmap = bitmapFromFile
barcodes.Add(barcode2)
For Each barcode In barcodes
' Read the barcode
Dim results = BarcodeReader.Read(barcode)
For Each result In results
' Output the detected barcode value
Console.WriteLine(result.Value)
Next result
Next barcode
上面的代碼片段是前一個的擴展。 一旦我們填充了 AnyBitmap 列表,我們就遍歷列表並對每個 AnyBitmap 對象調用 Read
方法作為參數,然後返回 IronBarcode.BarcodeResults。 我們接著遍歷返回的物件,將條碼值印到控制台上。
IronSoftware.Drawing 的功能範圍不僅限於轉換圖像。 它也被廣泛應用於其他圖像處理方面,例如在條形碼和QR碼的樣式設計中非常有用的顏色和字體。 使用者可以探索我們如何運用IronDrawing來自訂和添加標誌到QR碼.