none
Erro ao converter BMP para GRF RRS feed

  • Pergunta

  • Iremos imprimir um logo em impressoras ZEBRA na linguagem ZPL.

    O arquivo de imagem do logo está no formato .bmp, e tenho um código que converte a imagem bmp para grf.

    Segue trecho do código:


    private void btnLogo_Click(object sender, EventArgs e)
            {
                OpenFileDialog vs_abrir = new OpenFileDialog();
                if (vs_abrir.ShowDialog() == DialogResult.OK)
                {
                    txtLogo.Text = vs_abrir.FileName.ToString();
                }
                else
                    return;
    
                Bitmap bmp = null;
                BitmapData imgData = null;
                byte[] pixels;
                int x, y, width;
                StringBuilder sb;
                IntPtr ptr;
                string filename = txtLogo.Text;
                string imagename = "000";
    
                try
                {
                    bmp = new Bitmap(filename);
    
                    imgData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format1bppIndexed);
                    width = (bmp.Width + 4) / 8;
                    pixels = new byte[width];
                    sb = new StringBuilder(width * bmp.Height * 10);
                    ptr = imgData.Scan0;
                   
                    for (y = 0; y < bmp.Height; y++)
                    {
                        Marshal.Copy(ptr, pixels, 0, width);
                        for (x = 0; x < width; x++)
                            sb.AppendFormat("{0:X2}", (byte)~pixels[x]);
                        ptr = (IntPtr)(ptr.ToInt64() + imgData.Stride);
                    }
                }
                finally
                {
                    if (bmp != null)
                    {
                        if (imgData != null) bmp.UnlockBits(imgData);
                        bmp.Dispose();
                    }
                }
                path = String.Format("~DG{0}.GRF,{1},{2},", imagename, width * y, width) + sb.ToString();
            }



    ao carregar a imagem para gerar o arquivo grf aparece o seguinte ao executar o passo a passo na linha:


    imgData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format1bppIndexed);



    não consigo identificar o erro, alguém pode ajudar?
    terça-feira, 9 de outubro de 2018 14:31

Todas as Respostas

  • Boa noite. Tudo bem?

    Conseguiu algum avanço no teu caso?

    Se ainda não, o que precisa?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 19 de outubro de 2018 21:54
    Moderador
  • Boa tarde, jubeneve. Tudo bem?

    Obrigado por usar o fórum MSDN.

    Você conseguiu algum avanço no caso? Se ainda não, o que precisa?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 22 de outubro de 2018 18:00
    Moderador
  • Não consegui resolver o problema ainda!!!
    terça-feira, 23 de outubro de 2018 13:54