Ich versuche eine Pinselanwendung durch Verarbeitung zu entwickeln. Diese API hat die Funktion loadPixels () , mit der die RGB-Werte in das Array geladen werden. Jetzt möchte ich das Array in der Server-Datenbank speichern.
Das Problem ist die Größe des Arrays, wenn ich in eine Zeichenfolge umwandle, ist die Größe 5 MB.
Ist die beste Lösung, die Komprimierung auf Javascript-Ebene durchzuführen? Wie man es macht?
Siehe Ссылка für ein LZW-Komprimierungsbeispiel. Es funktioniert am besten bei längeren Strings mit wiederholten Mustern.
Aus dem Wikipedia-Artikel zum LZW:
Ein Wörterbuch wird initialisiert, um zu enthalten die einzelnen Zeichenfolgen entsprechend allen möglichen Eingabezeichen (und sonst nichts außer den clear und stop codes if sie werden benutzt). Der Algorithmus funktioniert durch Scannen der Eingabe string für sukzessive länger Teilstrings bis es einen findet, der ist nicht im Wörterbuch. Wenn solch ein string ist gefunden, der Index für die string less das letzte Zeichen (d. h. der längste Teilstring, der in der Wörterbuch) wird von der abgerufen Wörterbuch und zur Ausgabe gesendet, und die neue Zeichenfolge (einschließlich der letzten Zeichen) wird dem Wörterbuch hinzugefügt mit dem nächsten verfügbaren Code. Das Letzte Eingabezeichen wird dann als verwendet nächster Startpunkt zum Scannen Teilstrings.
Auf diese Weise sukzessive länger Strings sind in der registriert Wörterbuch und zur Verfügung gestellt für nachfolgende Codierung als einzelne Ausgabe Werte. Der Algorithmus funktioniert am besten Daten mit wiederholten Mustern, also die erste Teile einer Nachricht werden angezeigt wenig Kompression. Wie die Nachricht wächst jedoch das Kompressionsverhältnis neigt asymptotisch zum Maximum.
JavaScript-Implementierung von Gzip hat ein paar Antworten, die relevant sind.
Auch Javascript LZW und Huffman Coding mit PHP und JavaScript sind andere Implementierungen, die ich gefunden habe.
Tags und Links javascript compression processing.js