Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: Giuani - Luglio 23, 2020, 10:12:21 am

Titolo: QRcode e LazBarcodes
Inserito da: Giuani - Luglio 23, 2020, 10:12:21 am
Salve a tutti
spero di postare nel posto giusto.

Scopiazzando qua e la, con LazBarcodes ho fatto questa

procedure TForm1.Button1Click(Sender: TObject);
var Rt: TRect;
  PBox:TPaintBox;
  png : TPortableNetworkGraphic;
  bmp: TBitmap;
  begin
  bmp := TBitmap.Create;
  png := TPortableNetworkGraphic.Create;
  BarcodeQR:= TBarcodeQR.Create(PaintBox1);
  BarcodeQR.Text:=Testo.Text;
  BarcodeQR.ECCLevel:=eBarcodeQR_ECCLevel_L;
  BarcodeQR.Width := 200;
  BarcodeQR.Height := 200;
  BarcodeQR.ForegroundColor:= clBlack;
  BarcodeQR.BackgroundColor:= clWhite;
  BarcodeQR.StrictSize := true;
  BarcodeQR.Generate;
  Rt := Rect(0, 0, BarcodeQR.Width, BarcodeQR.Height);
  BarcodeQR.PaintOnCanvas(PaintBox1.Canvas,Rt);
end; 

Vorrei visualizzare il codice QR sulla Form con un TPaintBox o un TPicures e poi salvarlo in png o jpeg.
La procedura non da errori, ma non riesco a visualizzare ne con TPaintBox ne con TPicures.
Mi date qualche consiglio ?

Grazie dell’attenzione
Titolo: Re:QRcode e LazBarcodes
Inserito da: xinyiman - Luglio 27, 2020, 08:41:47 am
Prova questo, è più semplice di quello che pensi. C'è già un oggetto per visualizzare il barcode su una form.

Titolo: Re:QRcode e LazBarcodes
Inserito da: Giuani - Luglio 27, 2020, 07:05:47 pm
Ciao xinyiman
Si è così. Grazie
Ora visto che ci siamo, ti chiedo un’altra cortesia.

La procedura genera un file bmp
bmp.Canvas.Brush.Color := clWhite;
bmp.Canvas.FillRect(R);
BarcodeQR.PaintOnCanvas(bmp.Canvas, R);
che salvo con bmp.SaveToFile(imgbmpcode.bmp');
dal bmp si ottiene un png png.Assign(bmp);
e senza altro chiedere il programma salva di default nella cartella dove ci sono i programmi.
Utilizzando qualche componente Dialogs si potrebbero salvare le immagini nella cartella desiderata scegliendo nome ed estensione del file immagine ?
Ancora grazie.
Titolo: Re:QRcode e LazBarcodes
Inserito da: xinyiman - Luglio 27, 2020, 09:45:02 pm
Sperando di aver capito la domanda.
Guarda qui: https://wiki.freepascal.org/Howto_Use_TSaveDialog
Titolo: Re:QRcode e LazBarcodes
Inserito da: Giuani - Luglio 29, 2020, 06:22:58 pm
Grazie del link, molto utile.
Con l’idea del link sono andato a curiosare tra gli esempi di lazarus C:\lazarus\examples\jpeg e ho trovato qualcosa di più specifico.
Ciao
Titolo: Re:QRcode e LazBarcodes
Inserito da: xinyiman - Luglio 31, 2020, 12:27:03 pm
Figurati