[gelöst] Barcode als Bild-Datei speichern

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
Developer CPS
Beiträge: 15
Registriert: Fr 28. Aug 2015, 18:44
OS, Lazarus, FPC: Windows 10 (L 1.4.4, FPC 2.6.4)
CPU-Target: 64-Bit
Wohnort: Baden-Württemberg, Deutschland
Kontaktdaten:

[gelöst] Barcode als Bild-Datei speichern

Beitrag von Developer CPS »

Hallo,

ich habe folgendes Problem: In meinem Programm gebe ich eine 13-stellige Ziffernfolge ein, die dann in eine Bitfolge umgewandelt wird, um diese dann als Barcode auszugeben (s. Screenshot). Das funktioniert soweit auch einwandfrei.

Das Problem ist nun, dass ich nun den erzeugten Barcode als Bild exportieren möchte, weiß allerdings nicht so recht, wie ich das anstellen soll. Jeder Strich des Barcodes ist eine eigene Shape (bei EAN-13 also insg. 95 Stück).

Bin über jede Hilfe dankbar!


Gruß

DeveloperCPS
Dateianhänge
snip_20170314184149.png
snip_20170314184149.png (9.35 KiB) 1817 mal betrachtet
Zuletzt geändert von Developer CPS am Di 14. Mär 2017, 20:41, insgesamt 1-mal geändert.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Barcode als Bild-Datei speichern

Beitrag von theo »

Vernünftigerweise hättest du die Striche auf den Canvas gemalt, und nicht mit Shapes gearbeitet. Einen Bitmap Canvas hättest du direkt speichern können.
So kannst du vllt. einen Screenshot machen, das wäre aber ziemlich murksig.

Habe dir ein minimales Beispiel gemacht:

Code: Alles auswählen

 
var
  Form1: TForm1;
  abmp:TBitmap;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  abmp:=TBitmap.Create;
  abmp.SetSize(300,200);
  abmp.Canvas.Brush.Color:=clWhite;
  abmp.Canvas.FillRect(0,0,abmp.Width,abmp.Height);
  abmp.Canvas.Brush.Color:=clBlack;
  abmp.Canvas.FillRect(4,0,8,abmp.Height);
  abmp.Canvas.FillRect(10,0,12,abmp.Height);
  //etc...
  abmp.SaveToFile('test.bmp');
end;
 
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
 abmp.Free;
end;
 
procedure TForm1.FormPaint(Sender: TObject);
begin
  Canvas.Draw(1,1,abmp);
end;

Developer CPS
Beiträge: 15
Registriert: Fr 28. Aug 2015, 18:44
OS, Lazarus, FPC: Windows 10 (L 1.4.4, FPC 2.6.4)
CPU-Target: 64-Bit
Wohnort: Baden-Württemberg, Deutschland
Kontaktdaten:

Re: Barcode als Bild-Datei speichern

Beitrag von Developer CPS »

Danke für deine Hilfe, ich habs jetzt auf Canvas umgestellt, jetzt funktionierts!

Gruß

DeveloperCPS

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: [gelöst] Barcode als Bild-Datei speichern

Beitrag von af0815 »

BTW. Es gibt für Barcode auch fertige Bibliotheken, zB. in LazReport. TFrBarcodeObjekt, schau dort ev. mal rein.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten