Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 222 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Bom dia, estou usando o ACBRPIXCD para o Banco do Brasil, já em produção, tudo perfeito. Mas estou com um problema na geração da Imagem do QRCODE em FMX Android. Se alguem puder me dar uma luz.

Como podem ver nas fotos anexas, em FMX Windows o QRCOde sai perfeito, limpo, mas no equipamento Tectoy V2 a imagem sai borrada. Consegue ler a imagem no V2, testei com iPhones e celulares mais simples, mas fica feio, rs.

Uso o seguinte código para gerar o qrcode.

var
  QRCode: TDelphiZXingQRCode;
  Row, Column: Integer;
  pixelColor : TAlphaColor;
  vBitMapData : TBitmapData;
  rSrc, rDest : TRectF;
  s : widestring;
  QRCodeBitmap : TBitmap;
begin
  QRCode := TDelphiZXingQRCode.Create;
  QRCodeBitmap := TBitmap.Create;
  try
     QRCode.Data := TextoQrCode;
     QRCode.Encoding := TQRCodeEncoding(0);
     QRCode.QuietZone := 4;
     QRCodeBitmap.SetSize(QRCode.Rows, QRCode.Columns);
     for Row := 0 to QRCode.Rows - 1 do
     begin
       for Column := 0 to QRCode.Columns - 1 do
       begin
         if (QRCode.IsBlack[Row, Column]) then
           pixelColor := TAlphaColors.Black
         else
           pixelColor := TAlphaColors.White;

         if QRCodeBitmap.Map(TMapAccess.Write, vBitMapData)  then
         try
           vBitMapData.SetPixel(Column, Row, pixelColor);
         finally
           QRCodeBitmap.Unmap(vBitMapData);
         end;
       end;
     end;


    imgQRCode.Bitmap   := QrCodeBitmap;
    imgQRCode.DisableInterpolation := true;
    imgQRCode.WrapMode := TImageWrapMode.Fit;

    imgQRCode.Bitmap.SetSize(QRCodeBitmap.Width, QRCodeBitmap.Height);

    rSrc := TRectF.Create(0, 0, QRCodeBitmap.Width, QRCodeBitmap.Height);
    rDest := TRectF.Create(0, 0, imgQRCode.Bitmap.Width, imgQRCode.Bitmap.Height);

    if imgQRCode.Bitmap.Canvas.BeginScene then
       try
       imgQRCode.Bitmap.Canvas.Clear(TAlphaColors.White);
       imgQRCode.Bitmap.Canvas.DrawBitmap(QRCodeBitmap, rSrc, rDest, 1);
     finally
       imgQRCode.Bitmap.Canvas.EndScene;
     end;
 finally
     QRCode.Free;
     QRCodeBitmap.Free;
 end;

 

 

ImagemdoWhatsAppde2024-04-08(s)09_53.03_0f7f9746.thumb.jpg.0a3ee15951f0df72032b67b4fca72d35.jpgImagemdoWhatsAppde2024-04-08(s)09_53.04_06629c69.thumb.jpg.ddb2058205e790867398239e56f280d5.jpg

 


 

 

  • Consultores
Postado
53 minutos atrás, Pegasus Aut e Desenv disse:

imgQRCode.Bitmap.SetSize(QRCodeBitmap.Width, QRCodeBitmap.Height);

se vc tentar setar na mao largura e altura um pouco menor, apenas p teste...
ele modifica o comportamento?

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

  • Administradores
Postado

Tópico fechado por falta de retorno do usuário

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 222 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.