IRONSOFTWAREHOME

AnyBitmap to System.Drawing.Bitmap in .NET Framework

Curtis Chau
Curtis Chau
Updated: 29 de junho de 2026

Em um aplicativo de desktop .NET Framework, como WinForms, atribuir um AnyBitmap do IronBarcode diretamente a um System.Drawing.Image ou Bitmap falha em tempo de compilação. Um caso comum é vincular um código de barras gerado a um PictureBox, que só aceita objetos System.Drawing.Image.

Cannot implicitly convert type 'IronSoftware.Drawing.AnyBitmap' to 'System.Drawing.Image'
Text

O código abaixo aciona o erro:

var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);
// These lines cause compile-time errors
Image myBarcodeImage = myBarcode.Image;
Bitmap myBarcodeBitmap = myBarcode.ToBitmap();
C#

Ambos BarcodeWriter.Image e .ToBitmap() retornam um IronSoftware.Drawing.AnyBitmap. Esse tipo suporta conversão implícita para System.Drawing.Bitmap ou Image, mas somente no .NET 6, .NET 7, .NET 8 ou superior. Em .NET Framework, os operadores implícitos e a ponte de tipos internos nem sempre são resolvidos, especialmente quando os tipos vêm de bibliotecas diferentes ou camadas de compatibilidade.

Solução

Option 1: Install System.Drawing.Common

Adicione o pacote NuGet System.Drawing.Common para que os operadores de conversão sejam resolvidos contra um assembly de desenho consistente.

.NET CLI:

dotnet add package System.Drawing.Common
SHELL

Console do Gerenciador de Pacotes:

Install-Package System.Drawing.Common
SHELL

.csproj no estilo SDK:

<PackageReference Include="System.Drawing.Common" Version="8.0.0" />
XML

Opção 2: Converter Através de um Fluxo

Quando você preferir não alterar referências de pacotes, converta o bitmap através de um fluxo compatível com GDI e entregue o resultado para 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
}
C#

ToWindowsBitmapStream() escreve o AnyBitmap em um formato de imagem compatível com GDI, e Image.FromStream analisa esse fluxo em um System.Drawing.Image nativo.

Observe: Você também pode serializar o AnyBitmap com ToStream() se precisar de um fluxo genérico em vez de um específico do Windows.
Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Pronto para começar?

Nuget Downloads 2,452,240Versão:2026.9recém-lançado

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.
Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

OR
bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.