Glory: Grafikmanipulation mit Javascript?

Ist es mit einer Kombination aus Javascript, HTML und CSS möglich, im Browser dargestellte Grafiken zu bearbeiten? Möglichkeiten wie die CSS Filter von Microsoft meine ich nicht. Mir geht es eher um komplexere Sachen, wie z.B. Pixelmanipulation oder dem Weichzeichnen eines Bildes.

Falls nicht (so vermute ich es leider), wie stehen die Chancen, dass es irgendwann einmal möglich sein wird?

  1. Hallo Glory,

    Ist es mit einer Kombination aus Javascript, HTML und CSS möglich, im Browser dargestellte Grafiken zu bearbeiten? Möglichkeiten wie die CSS Filter von Microsoft meine ich nicht. Mir geht es eher um komplexere Sachen, wie z.B. Pixelmanipulation oder dem Weichzeichnen eines Bildes.

    Gecko-Browser (und vielleicht noch andere) unterstützen canvas, mit denen sowas geht.

    Falls nicht (so vermute ich es leider), wie stehen die Chancen, dass es irgendwann einmal möglich sein wird?

    Da es jetzt schon geht, recht gut. Ob z.B. der IE das aber in absehbarer Zeit können wird, steht in den Sternen.

    Jonathan

    1. Hi,

      ich denke, dass das unter Verwendung von Inline-Images eigentlich jetzt schon möglich sein müsste, oder?

      MfG Hans

      1. Hi,

        schau mal auf http://www.walterzorn.de oder gleich auf http://www.walterzorn.de/jsgraphics/jsgraphics.htm.

        Weis nicht ob es das ist was du brauchst ... aber schon mal ein Anfang hoff ich.

      2. Hi,

        ich denke, dass das unter Verwendung von Inline-Images eigentlich jetzt schon möglich sein müsste, oder?

        Das sehe ich ebenfalls so.

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  2. Hallo,

    Ist es mit einer Kombination aus Javascript, HTML und CSS möglich, im Browser dargestellte Grafiken zu bearbeiten? Möglichkeiten wie die CSS Filter von Microsoft meine ich nicht. Mir geht es eher um komplexere Sachen, wie z.B. Pixelmanipulation oder dem Weichzeichnen eines Bildes.

    Nein, das geht nicht. Wie stellst du dir das vor?

    Natürlich kann man Bilder insofern in JavaScript bearbeiten, dass man die Bilddaten als RGB-Pixel in eine zweidimensionale Matrix packen kann (das wäre dann ein riesiges Script, das man nur automatisiert erstellen könnte), mit der JavaScript Operationen durchführen kann. Ein Weichzeichner ist ja auch nur ein mathematischer Algorithmus, der Dinge in dieser Matrix berechnet und die Werte entsprechend abändert. Du wirst du nur das Problem haben, dass
    1. JavaScript solche riesigen Datenmengen nicht verwalten kann. Ein zweidimensionaler Array für ein 800x600-Bild hätte 480.000 Pixel, d.h. 801 Arrays mit 480.000 Number-Objekten. Das sprengt höchstwahrscheinlich den Rahmen gängiger JavaScript-Interpreter. Wahrscheinlich würde schon das Einlesen des riesigen Scriptes nicht funktionieren.
    2. Die Algorithmen müsste man in JavaScript neu implementieren, weil sie die Browser nicht von Haus aus unterstützen. Das wäre wahrscheinlich schon eine krasse Herausforderung - das gibts nämlich noch nicht.
    3. JavaScript kann komplexe Manipulationen an solchen Arrays keinesfalls performant durchführen.

    SVG, Canvas, VRML und Co. sind alles nur Lösungen zum Zeichnen bzw. Darstellen fester Vektor- bzw. Pixelgrafiken. Die haben ein paar Features und Filter zur »Manipulation«, stellen aber nix für Pixelmanipulationen wie Weichzeichnen zur Verfügung.

    Vergiss das also - solche Sachen macht man serverseitig, da gibts z.B. imagemagick.

    Mathias

    1. Hello out there!

      SVG, Canvas, VRML und Co. sind alles nur Lösungen zum Zeichnen bzw. Darstellen fester Vektor- bzw. Pixelgrafiken.

      Zählt VRML bei dir zu Vektor- oder Pixelgrafik? ;-)

      See ya up the road,
      Gunnar

      --
      „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
      1. Hallo,

        Zählt VRML bei dir zu Vektor- oder Pixelgrafik? ;-)

        Äh, ich meinte natürlich VML!

        Mathias