suit: Transparenz für einen bestimmten Farbwert per Javascript

Hallo, ich hab ein kleines Problem:

Ich habe eine Grafik die ich nicht ändern kann. Sie liegt in PNG-24 vor, nutzt aber die Alpha-Transparenz nicht wirklich - sprich das komplette Bild ist solide und manche Teile sind 100%ig transparent - wieder andere Teile des Bildes sind in #00FF00 markiert

Das Problem ist nun folgendes:

sämtliche transparenten Teile sollen transparent bleiben und alle grünen Bereiche sollen transparent werden.

Das ganze MUSS in JavaScript gelöst werden und ich kann das Bild selbst unmöglich ändern. zudem soll das ganze nur unter IE5.5 und 6 funktionieren - andere Browser sind nebensächlich, da die schon vorher per Weiche weggeteilt werden und das "Problem" anders lösen

Ich hab mich jetzt schon durch die unzählige vielfalt der Internet-Explorer-Filter gewählt aber nichts passendes gefunden, um mein Problem zu lösen.

Die Frage ist nun, wie ich dieses Problem lösen kann.

btw: keine Grundsatzdiskussionen wie das ganze funktioniert und warum es so gelöst wurde, ich wars nicht und muss mit diesen Mitteln und Vorgaben arbeiten :)

Danke

  1. Hello out there!

    Das ganze MUSS in JavaScript gelöst werden und ich kann das Bild selbst unmöglich ändern.
    Die Frage ist nun, wie ich dieses Problem lösen kann.

    Gar nicht.

    See ya up the road,
    Gunnar

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

    sämtliche transparenten Teile sollen transparent bleiben und alle grünen Bereiche sollen transparent werden.
    Das ganze MUSS in JavaScript gelöst werden und ich kann das Bild selbst unmöglich ändern.

    dann sehe ich keine Möglichkeit. Javascript kann nicht auf die Bildinformation als solche zugreifen und sie manipulieren, auch nicht bestimmte (Farb-)Bereiche transparent machen. Umgekehrt -also transparente Bereiche deckend machen- wäre schon eher was zu machen, indem man dem Bild eine Maske überlagert (oder hinterlegt), die die gewünschten Flächen abdeckt.

    Ich hab mich jetzt schon durch die unzählige vielfalt der Internet-Explorer-Filter gewählt aber nichts passendes gefunden, um mein Problem zu lösen.

    Ich fürchte, bei dieser Erkenntnis wird es bleiben.
    Die Frage ist, warum du an der Problem-Grafik nichts ändern kannst. Wenn du sie an anderer Stelle exakt in ihrer jetzigen Form brauchst, dann mach doch für deinen gewünschten Effekt eine Kopie und überarbeite diese.

    So long,
     Martin

    --
    Niemand lebt allein von seinen Träumen.
    Aber wer träumt, lebt noch.
  3. Das ganze MUSS in JavaScript gelöst werden und ich kann das Bild selbst unmöglich ändern.

    Wie sieht es mit einer entsprechenden CSS-Eigenschaft aus, die du via Javascript hinzufügst? Da fiele mir HTMLObject.style.filter ein, der passende Filter dürfte wohl Chroma sein.

    Die Frage ist nun, wie ich dieses Problem lösen kann.

    Platziere folgendes Script am Ende der Seite:

    <script type="text/jscript">  
    var bild = document.images[1];  
    bild.style.filter = 'progid:DXImageTransform.Microsoft.Chroma(color=#008000)';  
    </script>
    

    Damit werden alle Farbbereiche des zweiten Bildes im Dokument, die den Farbwert '#008000' haben, transparent, die Angabe 'text/jscript' führt dazu, dass Nicht-IEs den Scriptcode ignorieren und es somit keine Fehlermeldungen gibt.

    Jetzt musst du nur noch den Hex-Code für die von dir gesuchte Farbe finden :)

    Siechfred

    --
    Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
    1. die firma dankt, funktioniet einwandfrei ;)

      hab aber inzwischen festgestellt, dass die grafik noch etwas komplizierter ist, als ich mir eigentlich gedacht hab - mit etwas anpassung hats aber dennoch geklappt