QR Code duplizieren und in PNG oder Vektorgrafik überführen

Rach78

Banned
Registriert
März 2007
Beiträge
2.636
Hallo ich suche eine Möglichkeit QR Codes zu duplizieren. Möchte von einem QR Code als Bild ne exakte 1:1 Kopie haben in digitaler Form.
Wenn man den Code einscannt und anschließend ein neuen QR Code generiert ist das Ergebnis leider oftmals unterschiedlich. Mir ist klar dass es zwar der selbe Inhalt ist und das warscheinlich kein Problem sein wird, dennoch will ich eine 1:1 Kopie. Ich bin auch etwas in der Materie drin wie Pattern und Fehlerkorrektur, doch auch das durchprobieren der Unterschiedlichen einstellen haben nie dazu geführt dass der Code wirklich EXAKT wie auf dem Bild aussah. Gibt es vllt tools womit man sich auch Optionen anzeigen lassen kann? Wie das genutzte Pattern oder welche Einstellung bei der Fehlerkorrektur dieser Code benutzt?

Möchte keine JPG haben sondern einfach ne exakte Kopie des Codes an sich.
 
Als was ist die Quelle den vorhanden?
 
  • Gefällt mir
Reaktionen: tollertyp
Du brauchst einen QR Code Scanner / Library der nicht nur den Inhalt aus liest sondern auch die Meta Daten liefert wie der QR Code interpretiert worden ist da steht dann drin welches Encoding welches Pattern wie hohe Fehlerkorrektur und so weiter und dann kommt auch der optisch Gleiche Code raus (hoffentlich)

Ohne diese Meta Info ist es ein Rate Spiel
 
kieleich schrieb:
Du brauchst einen QR Code Scanner / Library der nicht nur den Inhalt aus liest sondern auch die Meta Daten liefert wie der QR Code interpretiert worden ist da steht dann drin welches Encoding welches Pattern wie hohe Fehlerkorrektur und so weiter und dann kommt auch der optisch Gleiche Code raus (hoffentlich)

Ohne diese Meta Info ist es ein Rate Spiel
Ja welches tool kann das denn zum Beispiel?
Ergänzung ()

DaysShadow schrieb:
https://stackoverflow.com/questions/4551110/why-dont-duplicate-qr-codes-look-the-same

Du musst den QR Code an deinem PC oder wo auch immer dann mit den exakt gleichen Einstellungen wie das Original wieder generieren, sonst sieht er eben anders aus. Die Einstellungen musst du dann eben irgendwie ermitteln.
Ja das ist mir klar. Nur soviele verschiedene Einstellungen gibt es halt am Ende ohnehin nicht. Habe gestern schonmal alles durchprobiert was es sein könnte. Gepasst hat aber nichts davon am Ende.. Deswegen wäre es erstmal klug die Metadaten auszulesen.
 
zum beispiel für Rust QR Reader liefert https://github.com/WanzenBug/rqrr zumindest eine MetaData Struktur mit in der ein paar Sachen drin stehen ( version, ecc, mask ) aber jede gute QR Code Library sollte eigentlich so was in der Richtung können der Encoding fehlt allerdings
 
Und was wäre an einem Abfotografieren (besser. Einscannen) des QR-Codes mit ein wenig Nachbearbeitung (Tonwertanpassung, Entzerrung, ...) so ein großes Problem?

Nichts ist originaler als das Original.
 
@tollertyp das ist fast noch aufwendiger als einfach neuen QR Code erzeugen

aber du deckst dann den Sonder Fall ab: es gibt ja auch ungültige QR Codes. Die nur dank Fehler Korrektur noch lesbar sind. Fliegenschiss auf dem QR Code und so.

Du kannst einen Fehler haften QR Code nicht neu generieren. Der generierte ist dann "korrekt".

Absichtlich fehlerhafte QR Codes sind z.B. die mit dem Loch in der Mitte um Platz für ein Logo zu schaffen.

Oder es gibt diese transparenten QR Codes mit Hintergrund Bild. Das bekommt man auch nicht hin (und nicht jeder Scanner, mag das lesen können).

Also es mag fälle geben wo man bildhaft arbeiten muss aber eigentlich ist QR Code Scannen -> QR Code erzeugen, das einfachste von der Welt
 
Da der Code in der App gelesen wird weiß ich halt nicht ob vllt der Code auch absichtlich gezielt manipuliert worden ist um eben genau das abzufragen auch als Art Kopierschutz. Kann ja durchaus sein dass die Metadaten ebenfalls in der entsprechenden App ausgewertet werden..
Daher möchte ich um sicherzugehen eben eine 1:1 Kopie anfertigen was aber offenbar gar nicht soo einfach ist.
 
@kieleich: Mein Fehler. Man kann den eingescannten und nachbearbeiteten QR-Code ja nicht testen. Gott wie dumm von mir. Danke für den Hinweis.
 
Nein kann man nicht in jedem Fall. Spielt auch alles jetzt keine Rolle. Der Topic ist klar vorgegeben. Es geht um das exakte anfertigen einer digitalen Kopie 1:1. Nicht um Bildbearbeitung. Also ich lehne deinen Vorschlag ab und bitte jetzt auch von weiterem Offtopic abzusehen in dieser Richtung… Geht hier nicht um ne Grundsatzdiskussion…
 
tollertyp schrieb:
@kieleich: Mein Fehler. Man kann den eingescannten und nachbearbeiteten QR-Code ja nicht testen. Gott wie dumm von mir. Danke für den Hinweis.
weiss nicht was dein problem ist aber du scheinst mein beitrag valsch verstanden zu haben

habe deine methode nicht in abrede gestellt sondern sogar ihren vorteil

aber mich sonst eben mit dem generieren befasst, das ungewöhnliche ist eben die anforderung "muss optisch gleich sein" wobei gerade die optik beim qr code eine zufalls komponente ist und so normal gar keine rolle spielt ist eben ein ungewöhnlicher anwendungsfall

von sonder fällen abgesehen ist das problem durch das zusätzliche auslesen der qr code metadaten "gelöst" das problem ist halt das viele tools das nicht unterstützen weil "braucht ja keiner" also bleibt selber programmieren oder eben doch ein (exotischeres?) tool finden was das macht

oder blind alle möglichkeiten durch probieren, irgend eins sollte normal passen

@Rach78 vielleicht hast du ein Beispiel QR Code an dem man das mal durch exerzieren kann wenn du selbst, keine übereinstimmung findest
 
  • Gefällt mir
Reaktionen: tollertyp
Kann das Original nicht zur Verfügung stellen. Mir ist aber aufgefallen dass manche Reader ein „Invalid“ herausspucken und den Code nicht lesen wollen. Ich habe jetzt mal einen neuen QR Code erstellt mit dem Text als Input. Den nimmt die App wofür der Code gedacht war allerdings auch ohne zu murren.
Ob das aber immer der Fall sein wird oder nur in diesem Beispiel weiß ich nicht. Es wäre ja durchaus denkbar dass der Ersteller auch absichtlich Fehler eingebaut hat die die Fehlerkorrektur wieder entfernt aber ne Metadatenauswertung ja durchaus stattfinden könnte an manchen Stellen.


https://www.nayuki.io/page/qr-code-generator-library

Hier kann man Codes erstellen und die Paramter anpassen. Mein Code hat 3x3 Quadrate für die Orientierung. Die Blöcke abzuzählen war mir zu mühseelig. Daher habe ich alles ausgestet was es hätte sein können. Mit anderen Worten Version 7 bis 13 kommen in Frage. Das ist eigentlich auch recht schnell durchprobiert mit dem Tool. Ich habe sogar ALLE Stufen der Fehlerkorrektor probiert. Identisch wird davon aber nichts.
Es gibt 8 verschiedene Masken. Macht also pro Version maximal 8*4 möglichkeiten.
Die Einstellung der Fehlerkorrektur kann man auch eigentlich direkt ablesen zB direkt rechts neben dem unteren linken Quadrat. Bei mir sind die beiden Blöcke weiß was auf die maximale Einstellung hindeutet.

Rein Theoretisch müsste unter den Möglichen 8*4*7 Möglichkeiten also eine identisch sein. Wobei man beachten muss dass bei Version 7 und 8 sind aufgrund derlänge des Strings nur die unteren beiden Fehlerkorrekturen möglich. Es fallen schonmal 4 Fälle somit raus. Bei Version 9 ist die höchste Stufe nicht möglichlich. Also 8*4*7- 5. Ab Version 10 gehen alle.

Manche Tools melden bei meinem Original QR Code allerdings auch ne Fehlermeldung.Was vllt dafür sprechen könnte dass man hier metadaten manipuliert hat.
 
Zuletzt bearbeitet:
@Rach78 ja die Seite ist ganz gut die zeigt auch ein paar technische Details zum QR Code

aber alles ein stellen kannst du dort auch nicht, aber dort wird wenigstens angezeigt, der Encoding mode. Da gibt es z.B. numeric (0-9) alphanumeric (A-Z0-9) und byte (beliebige Zeichen) und es wird automatisch, der beste genommen

aber es gibt ja keinen Zwang dazu also man kann 0-9 auch als byte codieren selbst wenn numeric reichen würde und der QR Code weniger Komplex davon wäre

aber so gibts halt neben den ganzen anderen Sachen noch wieder weitere Möglichkeiten die gleichen Daten in ein QR Code zu stecken mit anderem optischen Ergebnis

vielleicht hast du ja so einen wenn du auf normalem Weg, keine Übereinstimmung findest
 
Habe die Version Information mal von Hand dekodiert. Da kommt bei mir Version 10 raus. Was auch Sinn ergibt.
Ergänzung ()

Konnte nun meinen Code 1:1 erstellen mit folgendem Tool.

https://www.cssscript.com/demo/decoding-encoding-qr-code/

Nachdem ich den ECI Mode aktiviert habe. Leider kann man da wieder nicht die Version manuell auswählen genauso wenig wie die Maske sondern das geschieht dort automatisch, was aber wohl ohnehin der Normalfall sein sollte.
Einziger Nachteil export nicht im PNG format möglich sondern gif.
 
Zuletzt bearbeitet:
Rach78 schrieb:
Einziger Nachteil export nicht im PNG format möglich sondern gif.
Dafür gibt es ja auch Converter, dass sollte also kein Problem sein und falls du das automatisierst ist es ja nur ein kleiner Schritt mehr.
 
Hallo, ich möchte ne Reihe von QR Codes abspeichern doch stehe da vor einer Reihe von Unklarheiten.

Mein QR Code hat zB eine Größe von 57x57 Quadrate. Laut meinem Verständnis muss die Auflösung in dem Fall ja ebenfalls nicht höher sein, also wähle ich 57x57 und speichere es als PNG ab.
Das Problem was jetzt entsteht ist dass der Code in vielen Programmen mit den ich ihn öffnen will zu klein ist und die Zoomfunktion mitunter auch nicht ausreicht um eine entsprechende Größe aufs Display zu kommen. Schlimmer noch, öffne ich auf meinem iPhone die PNG Datei ist sie quasi unlesbar, es sieht so aus als ob versucht die Software zwischen dem weiß und schwarz zu interpolieren für die Darstellung was dazu führt dass die Darstellung extrem unscharf aussieht.
Ich habe gelesen dass SVG „besser“ sein soll, insbesodere wenn man die Grafik sehr stark vergrößern will. Nur stellt sich mir hier die Frage was soll der Vorteil an SVG sein wenn sich der QR Code doch ohnehin perfekt im Rasterformat abspeichern lässt wie PNG. Selbst beim reinzoomen sollte es doch niemals unscharf werden weil es nur weiße und schwarze Pixel gibt.

Wenn ich die Auflösung nun in Höhe und Breit verdoppel sieht vieles auf den Displays später schon viel besser aus. Nur eigentlich ist es doch totaler schwachsinn ein 57x57 QR Code mit einer Auflösung von 114x114 abzuspeichern.
Da die optimale Auflösung wohl nicht die Größe des QR Codes selbst zu sein scheint frage ich mich was ist sie dann?

Der Vorteil an SVG mag sein die Anwendung die die Grafik darstellen soll kommt nicht auf die Idee zu skalieren wie aktuell bei mir der Fall. Kann es sein dass man die Auflösung bei PNG aus dem Grund höher wählt? Viele Programme die Bilder darstellen skalieren und interpolieren wohl eigenständig was bei normalen Bildern sicherlich auch gewünscht ist.
 
Zuletzt bearbeitet:
als 1 bit schwarzweiss PNG möglich. oder als GIF... wenn du in eine HTML Seite einbettest ist beim CSS dann so ein zu stellen dass es nicht verschwommen aussieht beim hoch skalieren (image-rendering pixelated oder so). im CSS kannst du dann auch den Zoom machen.

da PNG und GIF komprimierte Formate sind mag es auch nicht schaden der Grafik von vorneherein mehr Pixel zugeben

Dateigröße wird so oder so immer, größer sein als der in QR encodierte Wert

SVG geht natürlich auch

oder eben den Rohwert speichern und QR Codes daraus bei Bedarf dynamisch erzeugen
Ergänzung ()

Rach78 schrieb:
Selbst beim reinzoomen sollte es doch niemals unscharf werden weil es nur weiße und schwarze Pixel gibt.
Die Unschärfe entsteht eben dadurch daß die meisten Programme bei Bildern von Fotos ausgehen wo das Weich Zeichnen erwünscht ist eben um den Pixel Look zu vermeiden so wie Spiele ja auch Anti Aliasing machen... bei den MEisten Bildern funktioniert das auch sehr gut so nur bei deiner Anwendung dann natürlich Kontra Produktiv
 
Zurück
Oben