Wenn ich ein einfaches Bild über das Netzwerk übertrage, ist es schnell. Wenn ich versuche, das gleiche Bild, das in einer Leinwand erstellt wurde, mit toDataURL
zu übertragen, ist es viel langsamer. Warum?Warum ToDataURL ist so langsam?
Antwort
Sie sind nicht zu viel Kontext so im Allgemeinen zu geben:
Wenn Sie toDataURL()
verwenden wird der Browser das Bild als Base-64-Stream mit einem kleinen Kopf kodieren. Die base-64 erhöht die Größe immer um 33% im Vergleich zur nicht codierten Größe.
Wenn Sie eine JPEG-kodierte Datei nativ übertragen, ist sie in der Regel kleiner als eine PNG-Version des Bildes. Wenn Sie vergessen, den Bildtyp für toDataURL
anzugeben, wird der Browser standardmäßig auf PNG eingestellt.
In diesem Fall geben Sie JPEG auf diese Weise:
var quality = 0.7;
var dataUri = canvas.toDataURL('image/jpeg', quality);
Folgefrage. Gibt es irgendwelche Nachteile beim Speichern des dataUri, sagen wir localspeicher, in Bezug auf die Leistung? – JohnAndrews
@JohnAndrews nicht für die Leistung (der Overhead wäre immer noch da), aber Data-URI wäre erforderlich, da localSotrage nur Zeichenfolgen verwendet. Aber Speicherplatz * Raum * wird leicht zu einem Problem werden. IndexedDB ist eine bessere Wahl für diese IMHO und es kann Blobs speichern. – K3N
Ahh das war es, ich nahm an, dass es standardmäßig auf das Eingabebild umstellen würde, was sich bei jpeg um einiges schneller ändern würde, danke Kumpel! Ich freue mich auf die Implementierung von 'canvas.toBlob' in Chrome, damit es noch schneller und nicht blockierend sein kann –
- 1. Warum ist TestComplete so langsam?
- 2. Warum ist statistics.mean() so langsam?
- 3. Warum ist PageSettings.PrintableArea so langsam?
- 4. Warum ist array.min so langsam?
- 5. Warum ist "htmlspecialchars" so langsam?
- 6. Warum ist random.choice so langsam?
- 7. Warum ist rsync so langsam?
- 8. Warum ist Dictionary.First() so langsam?
- 9. warum so langsam
- 10. Warum ist async so langsam zu erwarten?
- 11. Warum ist Adobe Luft so langsam
- 12. Warum ist PostgreSQL unter Windows so langsam?
- 13. Warum Hypot() Funktion ist so langsam?
- 14. Warum Anruf über weak_ptr ist so langsam?
- 15. Warum ist PHP Composer so langsam?
- 16. Warum ist Scipys KDTree so langsam?
- 17. Warum ist der Wasserfall so langsam?
- 18. Warum ist dieses einfache Textanalyseprogramm so langsam?
- 19. elasticsearch Warum ist Facette so langsam?
- 20. Warum ist mein hgweb Server so langsam?
- 21. Warum ist Selen RC so langsam?
- 22. Warum ist die Tk Leinwand so langsam?
- 23. Warum ist setColor so langsam auf Android
- 24. Warum der ember-cli so langsam ist
- 25. Warum ist RSpec unter Rails so langsam?
- 26. Warum ist dieser jQuery-Selektor so langsam?
- 27. warum ist C++ std :: max_element so langsam?
- 28. Warum ist mein Debugger so langsam?
- 29. Warum ist dieser Elixier-Code so langsam?
- 30. Warum ist resolveInfo.loadLabel() so lächerlich langsam?
nicht genügend Informationen. – akonsu
Optimierung? Wie viel wiegt das reguläre Bild gegenüber dem generierten? – Boaz
define 'transfer' – charlietfl