AnyBitmap to System.Drawing.Bitmap in .NET Framework
Dans une application de bureau .NET Framework telle que WinForms, l'affectation d'un IronBarcode AnyBitmap directement à un System.Drawing.Image ou Bitmap échoue à la compilation. Un cas courant est la liaison d'un code-barres généré à un PictureBox, qui n'accepte que des objets System.Drawing.Image.
Cannot implicitly convert type 'IronSoftware.Drawing.AnyBitmap' to 'System.Drawing.Image'
Le code ci-dessous génère l'erreur :
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);
// These lines cause compile-time errors
Image myBarcodeImage = myBarcode.Image;
Bitmap myBarcodeBitmap = myBarcode.ToBitmap();
Les deux BarcodeWriter.Image et .ToBitmap() renvoient un IronSoftware.Drawing.AnyBitmap. Ce type prend en charge la conversion implicite vers System.Drawing.Bitmap ou Image, mais uniquement sur .NET 6, .NET 7, .NET 8, ou supérieur. Sur .NET Framework, les opérateurs implicites et le pontage de type interne ne se résolvent pas toujours, surtout lorsque les types proviennent de différentes bibliothèques ou couches de compatibilité.
Solution
Option 1: Install System.Drawing.Common
Ajoutez le package NuGet System.Drawing.Common pour que les opérateurs de conversion se résolvent sur un assemblage de dessin cohérent.
.NET CLI :
dotnet add package System.Drawing.Common
Console du Package Manager :
Install-Package System.Drawing.Common
SDK-style .csproj:
<PackageReference Include="System.Drawing.Common" Version="8.0.0" />
Option 2 : Convertir via un flux
Lorsque vous préférez ne pas modifier les références de package, convertissez le bitmap via un flux compatible GDI et remettez le résultat à l'PictureBox :
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() écrit le AnyBitmap dans un format d'image compatible GDI, et Image.FromStream analyse ce flux dans un System.Drawing.Image natif.

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.