Ir para conteúdo
  • Cadastre-se

dev botao

QRCode PIX "borrado" em Android


Recommended Posts

  • Membros Pro

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

 


 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
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

Link para o comentário
Compartilhar em outros sites

  • Administradores

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 !!

Link para o comentário
Compartilhar em outros sites

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.