Ich habe ein HTML5-Canvas-Element, in dem ein Benutzer ein Farbfoto dynamisch verschieben, seine Größe ändern und drehen kann.HTML5-Canvas: Wechsel zwischen Farbe/Graustufenbild
Ich möchte, dass der Benutzer zwischen Graustufen und Farbe wechseln kann.
kann ich zwei Ansätze denken, aber weder ist ideal:
1) Re-mache das Farbbild in Graustufen (unter Verwendung eines Pixel-für-Pixel-Loop) auf jeder Größe und dreht Ereignis (was sein könnte mehrere Male pro Sekunde)
2) Erstellen Sie eine Graustufenversion serverseitig, und wenden Sie alle Zeichenumwandlungen auf beide Bilder an, aber zeigen Sie jeweils nur eines von ihnen auf einmal an, abhängig von der Umschaltauswahl.
Kann jemand eine bessere Lösung als diese beiden denken - oder, wenn keine bessere Lösung existiert, überlegen Sie, welche der beiden die bessere Wahl wäre?
Aktualisierung:I implemented the method suggested below by Phrogz.
Nette Beschreibung; Besonders gefallen hat mir der Link zur heuristischen Graustufen-Konvertierung. Beachten Sie jedoch, dass Sie "toDataURL" nicht verwenden müssen, um den Graustufenarbeitsbereich in ein Bild zu verwandeln. 'drawImage()' kann mit einem HTML-Canvas aufgerufen werden, das als erstes Argument anstelle eines HTML-Bildelements übergeben wird. – Phrogz