Wir erfassen eine sichtbare Registerkarte in einem Chrome-Browser (mithilfe der Erweiterungs-API chrome.tabs.captureVisibleTab) und erhalten einen Snapshot im Daten-URI-Schema (Base64-codierte Zeichenfolge).So skalieren Sie ein Bild (im Daten-URI-Format) in JavaScript (echte Skalierung, ohne Verwendung von Stilen)
Gibt es eine JavaScript-Bibliothek, mit der ein Bild auf eine bestimmte Größe verkleinert werden kann?
Momentan gestalten wir es per CSS, müssen aber Leistungseinbußen zahlen, da die Bilder meist 100 mal größer sind als erforderlich. Zusätzliches Problem ist auch die Belastung der localStorage, die wir verwenden, um unsere Snapshots zu speichern.
Kennt jemand eine Möglichkeit, diese Daten URI-Schema formatierte Bilder zu verarbeiten und ihre Größe zu reduzieren, indem Sie sie verkleinern?
Referenzen:
- Daten URI-Schema auf http://en.wikipedia.org/wiki/Data_URI_scheme
- Chrome Extensions API auf http://code.google.com/chrome/extensions/tabs.html
- Die "Kürzlich geschlossene Tabs" Chrome Extension auf http://code.google.com/p/recently-closed-tabs
Danke Matthew, ein sehr sauberes Beispiel ... Ich musste die andere Nacht zu viel tragen, als ich es versäumt habe, "genau" die gleiche Arbeit zu bekommen ... der einzige Unterschied ist dass ich eine vorhandene Leinwand aus HTML verwendet habe. –
@kodra, sollten Sie die Antwort akzeptieren, wenn es Ihr Problem löst. –
Dies skaliert auch NUR das Bild und die resultierende 'dataURL' ist so groß wie die, die Sie ohne' canvas.toDataURL() 'erhalten würden (selbst wenn Sie das' image' mit neuer Breite und Höhe neu gezeichnet haben :() –