Christof Donat: Malen in Bildern

Hallo,

Ich möchte gerne mit JavaScript in Bildern malen können, also sozusagen setpixle() und getpixle()-Funktionen aufrufen. Ich habe bisher folgende Ideen:

1. data:-URLs mit JavaScript manipulieren. Das funktioniert aber so weit ich weiß nicht im IE.
2. javascript:-URLs verwenden. Das kann, soweit ich herausgefunden habe, aber nur xbm-Bilder zurückliefern. Farbe wäre doch schön.
3. Über dem Hintergrundbild 1x1px große div-Tags platzieren. Damit geht aber nur setpixle() und bei der Anwendung können User sehr viele Pixel innerhalb einer Sitzung manipulieren. Es wärealso extrem langsam.
4. Serverseitig das Hintergrundbild in kleine Kacheln zerlegen, die JavaScript-Events in XMLHttpRequests verschicken und die geänderten Bildteile nach der Antwort vom Server nachladen. Das würde allerdings nicht zu der "user-Experience" fürhren, die ich haben möchte.

Hat noch jemand eine Idee, wie ich auch den IE dazu bringen kann? Die Data-URLs kommen am nächsten an meine Vorstellung heran.

  1. Hallo Christof

    Hat noch jemand eine Idee, wie ich auch den IE dazu bringen kann? Die Data-URLs kommen am nächsten an meine Vorstellung heran.

    Vielleicht kann dir Walter Zorns Vektorgrafik-Bibliothek weiterhelfen.

    Auf Wiederlesen
    Detlef

    --
    - Wissen ist gut
    - Können ist besser
    - aber das Beste und Interessanteste ist der Weg dahin!
    1. Hallo Detlef

      Hat noch jemand eine Idee, wie ich auch den IE dazu bringen kann? Die Data-URLs kommen am nächsten an meine Vorstellung heran.

      Vielleicht kann dir Walter Zorns Vektorgrafik-Bibliothek weiterhelfen.

      Danke, die kannte ich schon. Von dort hatte ich die Idee zu Variante 3.

      Ich bin im Moment dabei, eine dreistufige Lösung zu machen: erst versuche ich herauszufinden ob der Browser mit data:-URLs klar kommt. Wenn das nicht der Fall ist, versuche ich herauszufinden, ob er Java und Live-Connect unterstützt und mache da Ganze als Applet.

      Wenn das auch nicht geht, werde ich das Bild Kacheln und mit 1x1 div-Tags arbeiten, aber zwischendurch die Änderungen an den Server schicken, um dann einzelne Bildkacheln auszutauschen. Dann kann ich die div-Tags über der ausgetauschten Kachel wieder löschen und so den Speicherverbrauch und die Rechenzeit im Rahmen halten. Das Problem ist dabei immer noch getpixle(). Ich muss also die Bilder noch einmal per XMLHttpRequest vom Server beziehen und in Javascript parsen, damit ich weiß, was vorher da steht.

      Ich vermute, dass heute keine grafischen Browser mehr verwendet werden, die nicht wenigstens eine der drei Möglichkeiten unterstützt. Sollte sich doch ein derartiger Masochist finden, wird er gewohnt sein, nur wenige dynamische Seiten wirklich nützen zu können.

      Sobald die Lösung stabil ist, werde ich in meinem Blog einen Eintrag schreiben. Kann aber ein Weilchen dauern, weil das dann doch etwas aufwändiger wird.

      Christof