Transparenz für einen bestimmten Farbwert per Javascript
suit
- 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
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
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
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
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