Ich habe einige willkürliche Pixeldaten, die ich als PNG speichern möchte. Wie kann ich ein PNG mit JavaScript kodieren, um dies zu erreichen?
Die Daten sind eine Reihe von 1 und 0, die ich verwenden möchte, um einen QR-Code zu erstellen. Es ist QR-Code beliebige Daten
Ich verwende nicht das DOM, also sind jQuery und createElement aus.
Wenn ich Sie richtig verstehe, könnten Sie diese Bibliothek verwenden, um qrcodes zu generieren:
Habe es nicht versucht, aber es scheint gut dokumentiert
EDIT: Wie die andere Antwort sagt und Links gibt es eine Javascript-Erklärung des PNG-Formats. Hurra!
Wenn Sie eine Bilddatei im PNG-Format erstellen möchten, fragen Sie im Grunde: "Was ist das Dateiformat für PNG? Und wie konvertiere ich ein QR-Code-Gitter in ein Bild, das ein QR-Code-Bild ist Ich kann diesen QR-Code durch eine Folge von 1s und 0s definieren. "
Sie müssen die LZW-Komprimierung in Erwägung ziehen, wenn Sie PNG verwenden möchten. Sehen Sie sich unkomprimierte GIFs oder Bitmaps an. Verwenden Sie Titanium, um die Datei zu erstellen, schreiben Sie einen Header für das gewünschte Bildformat fest und verwenden Sie dann die entsprechende Codierung, um Ihr Bild programmatisch zu erstellen.
Aber wenn Sie einfach einen QR-Code auf dem Bildschirm anzeigen möchten, warum verwenden Sie kein Titanium-Webview-Zeichenfeld? Oder wenn Sie befürchten, dass es zu langsam ist (es wird nicht zum Zeichnen von Black Boxes verwendet werden), verwenden Sie die Titan + Plus Paint für iOS.
Ein "Hack" kann sein, die UI-Elemente mit absoluter Positionierung zu verwenden, um Ihr QR-Code-Bild zu konstruieren, indem Sie es mit UI-Elementen zeichnen. Cooler Hack.
Oder Sie könnten einfach das SVG-Format in einer Webansicht verwenden. Ich persönlich finde es am einfachsten, wenn Sie eine Datei benötigen, verwenden Sie eine Bitmap mit einem hartkodierten Header, wie ich oben sagte, oder ein GIF, wenn Sie keine Bitmap verwenden können.
Wenn Sie nur das Bild benötigen, würde ich versuchen, eine der Appcelerator-Zeichenmethoden zu verwenden.
Viel Glück!
Oder verschlüsseln Sie es mit reinem Javascript direkt in ein PNG (kein Canvas erforderlich):
Tags und Links javascript encoding png appcelerator titanium-mobile