.NET Framework'te AnyBitmap to System.Drawing.Bitmap
.NET Framework masaüstü uygulamalarında WinForms gibi, bir IronBarcode AnyBitmap doğrudan bir System.Drawing.Image veya Bitmap atamak derleme zamanında başarısız olur. Yaygın bir durum, oluşturulan bir barkodu yalnızca System.Drawing.Image nesnelerini kabul eden bir PictureBox'a bağlamaktır.
Cannot implicitly convert type 'IronSoftware.Drawing.AnyBitmap' to 'System.Drawing.Image'
Aşağıdaki kod hata tetikler:
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);
// These lines cause compile-time errors
Image myBarcodeImage = myBarcode.Image;
Bitmap myBarcodeBitmap = myBarcode.ToBitmap();
Hem BarcodeWriter.Image hem de .ToBitmap() bir IronSoftware.Drawing.AnyBitmap döndürür. Bu tür, yalnızca .NET 6, .NET 7, .NET 8 veya üzeri sürümlerde System.Drawing.Bitmap veya Image'e örtük dönüştürmeyi destekler. .NET Framework'te örtük operatörler ve dahili tür köprüleme her zaman çözülmez, özellikle türler farklı kütüphanelerden veya uyumluluk katmanlarından geldiğinde.
Çözüm
Seçenek 1: System.Drawing.Common Yükleyin
Dönüşüm operatörlerinin tutarlı bir çizim derlemesi karşısında çözülmesi için System.Drawing.Common NuGet paketini ekleyin.
.NET CLI:
dotnet add package System.Drawing.Common
Paket Yöneticisi Konsolu:
Install-Package System.Drawing.Common
SDK tarzı .csproj:
<PackageReference Include="System.Drawing.Common" Version="8.0.0" />
Seçenek 2: Bir Akışla Dönüştürme
Paket referanslarını değiştirmek istemediğinizde, bit eşlemeyi GDI uyumlu bir akış üzerinden dönüştürün ve sonucu PictureBox'a verin:
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);
myBarcode.ResizeTo(400, 100); // Optional resizing
using (var ms = myBarcode.ToWindowsBitmapStream())
{
pictureBox1.Image = Image.FromStream(ms); // Works in .NET Framework
}
ToWindowsBitmapStream(), AnyBitmap'yı GDI uyumlu bir görüntü formatına yazar ve Image.FromStream bu akışı yerel bir System.Drawing.Image'e çözümler.

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.