Estou utilizando este código em lazarus, mas na hora de salvar ele mostra uma parte preta como o da imagem, queria que ficasse branca/transparente mas testei umas maneiras e não deu certo.
procedure TformMain.btSalvarImagemClick(Sender: TObject);
var
bmp: TBitmap;
R: TRect;
png : TPortableNetworkGraphic;
begin
// bmp, png
bmp := TBitmap.Create;
png := TPortableNetworkGraphic.Create;
try
// bmp
if SavePictureDialog1.Execute then
begin
R := Rect(500, 500, BarcodeQR1.Width, BarcodeQR1.Height);
bmp.SetSize(600, 600);
bmp.Canvas.Brush.Color := clWhite;
bmp.Canvas.FillRect(R);
BarcodeQR1.PaintOnCanvas(bmp.Canvas, R);
png.Assign(bmp);
png.SaveToFile(SavepictureDialog1.Filename);
end;
finally
bmp.Free;
png.Free;
end;
end;