![]() |
freie QR-Code Komponente mit Error Correction Level M
Hallo,
ich suche eine freie QR-Code Komponente, die auch wie ![]() Lg, jus |
AW: frei QR-Code Komponente mit Error correction level M
hallo jus,
ich benutze die ZintLibrary ![]() zusammen mit der Komponenten von TheUnknownOnes ![]() EDIT: Hier noch ein paar interessante Daten zu Correction Level ![]() Das funktioniert super bei mir. Aber was meinst du mit dem M-Code genau ? Ich kenne mich mit den Besonderheiten im Code nicht so aus, vielleicht kannst du mich aufklären. Jedenfalls funktioniert auch die Fehlercorrection gut, wenn du das meinst, und man kann die Qualität einstellen. Rollo |
AW: freie QR-Code Komponente mit Error Correction Level M
@Rollo: zintbarcode schaut sehr interessant aus. Kannst du bitte ein kurzes Code-Beispiel geben, wie man die Bibliothek benutzt, damit ein QR-Code generiert wird?
Lg, jus |
AW: freie QR-Code Komponente mit Error Correction Level M
Hallo jus,
das ist nur ein QuickandDirsty Test, funktioniert aber. Der Barcode wird mit GetBarcode ausgelesen, und dann als JPG ausgegeben, wichtig war dabei die DPI anzugeben, damit es im richtigen Masstab gedruckt wird. Ich habe gesehen das die QR-Code Größe (W x H) sprunghaft anwächst, nicht linear, wenn der Text größer wird. Innerhalb der Sprünge scheint eine feste Größe stehen zu bleiben. Deshalb habe ich meine Links versucht kurz zu halten, um unterschiedliche Codegrößem zu Vermeiden.
Code:
procedure TForm1.ActionQrGenerateSingleExecute(Sender: TObject);
var strX: string; strB: String; strX1: string; iPos: Integer; strL: String; bmpQr: TBitmap; picQr: TJpegImage; begin // ZintBarcodeComponent1.Barcode.Scale := SpinEditScale.Value / 100.0; if FSelected < 0 then FSelected := 0; // Start if FLang < 0 then FLang := 0; // Start strB := EditBaseFolder.Text; if strB <> '' then S4Str_LastChar_Force(strB, '/'); strX1 := MemoQrList.Lines.Strings[FSelected]; strX := strX1; strL := S4Str_Extract( EditLanguages.Text, FLang); // Get Language if (Length(strX) > 0) and ((strX[1] = '\') or (strX[1] = '/')) then Delete(strX, 1, 1); // Remove 1st strX := strB + strX + strL; MemoQrList.SelStart := Pos(strX1, MemoQrList.Text) - 1; MemoQrList.SelLength := Length(strX1); if strX <> '' then S4Str_LastChar_Force(strX, '/'); if (Pos('.htm', strX) <> 0) or (Pos('.html', strX) <> 0) and (S4Str_LastChar(strX) = '/') then begin // S4Str_LastChar_Set; iPos := Length(strX); if iPos <> 0 then Delete(strX, iPos, 1); end; LabelQRCode.Caption := 'QR-Code: ' + strX; ZintBarcodeComponent1.Barcode.Data := strX; ZintBarcodeComponent1.Refresh; // // Get Barcode // bmpQr := TBitmap.Create; picQr := TJpegImage.Create; try strX := S4Str_EndsForce(SaveDialog1.InitialDir, '\'); ZintBarcodeComponent1.Barcode.GetBarcode(bmpQr); picQr.Assign(bmpQr); picQr.CompressionQuality := 80; picQr.SaveToFile( strX + strX1 + strL + '.jpg'); // Save as JPEG finally FreeAndNil(picQr); FreeAndNil(bmpQr); end; if CheckBoxGenAll.Checked then begin JvTimerList1.Events[0].Enabled := True; // Enable Automatic Animate end; Inc(FLang); strL := S4Str_Extract( EditLanguages.Text, FLang); // Get Language if strL = '' then begin FLang := -1; // Start Languages from begin Inc(FSelected); if FSelected < MemoQrList.Lines.Count then Exit; FSelected := -1; JvTimerList1.Events[0].Enabled := False; // Stop Automatic Animate end; end; |
AW: freie QR-Code Komponente mit Error Correction Level M
Liste der Anhänge anzeigen (Anzahl: 3)
@Rollo62: Danke für den Code.
Ich habe da ein mysteriöses Problem und zwar erkennt meine e-banking app von meinem Iphone die von Zint erzeugten QR-Codes nicht. Sehr wohl erkennt es die von Google erzeugten QR-Codes und den QR-Code von der Referenzimplementierung Stuzza. Und zwar geht es um folgenden Text/Payload:
Code:
Ich erzeuge den QR-Code mit Zint mit folgenden Code:
BCD
001 1 SCT ABCDATWW Example with fictive data AT611904300234573201
Delphi-Quellcode:
Wenn ich an Google den QR-Code erzeugen lassen möchte, so schicke ich:
procedure TForm1.Button2Click(Sender: TObject);
var zb : TZintBarcode; bmp : TBitmap; s: String; i: Integer; begin Repaint; bmp := TBitmap.Create; s:=''; for i := 0 to Memo1.Lines.Count - 1 do begin s:=s+Memo1.Lines.Strings[i]+#10; end; SetLength(s,Length(s)-1); zb := TZintBarcode.Create; zb.BarcodeType := tBARCODE_QRCODE; zb.Scale:=3; zb.Option1:=2; // <---Error Correction Level M zb.Option2:=5; // <---Version 5 zb.Data := s; zb.GetBarcode(bmp); Canvas.Draw(10, 10, bmp); bmp.Free; zb.Free; end;
Code:
Hat jemand eine Idee woran es scheitern könnte? :gruebel:
http://chart.apis.google.com/chart?chs=300x300&cht=qr&chld=M&chl=BCD%0A001%0A1%0ASCT%0AABCDATWW%0AExample+with+fictive+data%0AAT611904300234573201&chof=gif
Lg, jus |
AW: freie QR-Code Komponente mit Error Correction Level M
Alle Daten sind in einem Wert kodiert.
Versuche statt
Delphi-Quellcode:
for i := 0 to Memo1.Lines.Count - 1 do
begin s:=s+Memo1.Lines.Strings[i]+#10; end;
Delphi-Quellcode:
s := Memo1.Lines.Text;
|
AW: freie QR-Code Komponente mit Error Correction Level M
Ist verlustbehaftetes JPG nicht das falsche Format für einen Barcode? Wäre komprimiertes BMP oder GIF nicht besser, da verlustfrei? Auch PNG kommt mit scharfen Kanten besser zurecht. Gerade beim skalieren könnte es zu Leseproblemen wegen der Artefakte kommen.
|
AW: freie QR-Code Komponente mit Error Correction Level M
Das kommt nach dazu, aber das Hauptproblem ist das fehlenden Trennkennzeichen.
IM QR-Code mit Zint ist
Code:
kodiert.
BCD0011SCTABCDATWWExample with fictive dataAT611904300234573201
in den anderen
Code:
BCD
001 1 SCT ABCDATWW Example with fictive data AT611904300234573201 |
AW: freie QR-Code Komponente mit Error Correction Level M
Vielleicht kannst du die C++ Zeichen statt LF ausprobieren: also '\n'
Siehe unten der Auszug von hier ftp://ftp.heanet.ie/mirrors/sourcefo...manual_242.pdf (sorry für die schlechte Formatierung, das war Copy-aus-PDF, damits schnell geht). Rollo Zitat:
|
AW: freie QR-Code Komponente mit Error Correction Level M
Das wird ihm hier nichts helfen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz