PNG probleem IE -> oplossing en petitie

Pagina: 1
Acties:
  • 138 views sinds 30-01-2008
  • Reageer

  • void
  • Registratie: September 2000
  • Laatst online: 08-12-2023
Als je met transparante plaatjes in PHP wilt werken kom je al snel uit bij het PNG formaat. Tot mijn grote verbazing ondersteunt IE niet alle features van PNG. Na een tijd zoeken op het internet vond ik hier toch een oplossing om png's ook in ie goed af te beelden.

Er moet een stylesheet aan te pas komen.
voor IE browsers:
code:
1
2
<img src="spacer.gif" style="filter:progid:DXImageTransform.
Microsoft.AlphaImageLoader(src='plaatje.png', sizingMethod='scale');">

Voor niet IE browsers:
code:
1
[img]"plaatje.png"[/img]


Waarom bij de tweede een stylesheet gebruikt is heb ik nog niet uitgezocht. Hij werkt namelijk ook zonder.
Om een en ander te vergemakkelijken heb ik onderstaande php functie ingebakken in de pagina's waar ik veelvuldig png gebruik.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  $spacer = "http://volledige pad/spacer.gif";
  function pngimg($img){
     global $_ENV, $spacer;
     $size = getimagesize($img);
     if (eregi('MSIE', $_ENV['HTTP_USER_AGENT']) 
     || eregi('Internet Explorer', $_ENV['HTTP_USER_AGENT'])){
        $imgcode = "<img src=\"".$spacer."\" ".$size[3];
        $imgcode.= " style=\"filter:progid:DXImageTransform.";
        $imgcode.= "Microsoft.AlphaImageLoader(src='".$img;
        $imgcode.= "', sizingMethod='scale');\">";
     } else {
        $imgcode = "<img src=\"".$img."\" ".$size[3];
        $imgcode.= " style=\"filter:alpha(opacity=0);\">";
     }
     return $imgcode;
  }

Op de plek van het plaatje staat er vervolgens:
PHP:
1
<?=pngimg("plaatje.png")?>

Zoals je kunt zien is dit natuurlijk geen ideale oplossing. MS schijnt al vanaf IE ersie 4 te beloven dat zze volledige ondersteuing voor PNG zullen inbouwen tot op heden is daar nog niets van te merken. Daarom is er door ene Aaron Adams een petitie gestart. Ik weet niet of MS er ooit naar luistert, maar kwaad kan het niet. Je kunt hier tekenen als je net als ik van mening bent dat er iets moet veranderen.

edit:
Heb eea over meer regels verspreid om GOT layout te behouden.

Le peintre de l'espace se jette dans le vide! (Y.Klein 1960)


Verwijderd

ik gebruik lekker png, fantastisch formaat. IE gebruikers hebben dan pech.

Verwijderd

void schreef op 02 november 2002 @ 15:02:
Voor niet IE browsers:
code:
1
[img]"plaatje.png"[/img]
:?
weet je het zeker? volgens mij kun je namelijk in elke andere browser (Konqueror, Moz, NS 7 en Opera 6) gewoon de transparantie regelen in de PNG zelf dus heb je helemaal geen filter nodig, verder is jouw zogenaamde oplossing voor andere browsers dan IE, juist een oplossing voor IE.

In Mozilla en andere Gecko browsers doe je transparantie heel anders, nl.
code:
1
[img]"plaatje.png"[/img]

In Opera bestaat geen CSS filter om transparantie toe te kennen aan elementen.

  • void
  • Registratie: September 2000
  • Laatst online: 08-12-2023
Verwijderd schreef op 02 november 2002 @ 18:00:

:?
weet je het zeker? volgens mij kun je namelijk in elke andere browser (Konqueror, Moz, NS 7 en Opera 6) gewoon de transparantie regelen in de PNG zelf dus heb je helemaal geen filter nodig, verder is jouw zogenaamde oplossing voor andere browsers dan IE, juist een oplossing voor IE.
...
De oplossing voor niet IE browsers werkt iig niet in IE.
void schreef op 02 november 2002 @ 15:02:
...
Waarom bij de tweede een stylesheet gebruikt is heb ik nog niet uitgezocht. Hij werkt namelijk ook zonder.
...
Ik had al een donkerbruin vermoeden, dat deze stylsheet niet nodig is.

Le peintre de l'espace se jette dans le vide! (Y.Klein 1960)


  • Justice
  • Registratie: Maart 2001
  • Laatst online: 07-08-2025
Als ik wil kijken wie er al gesigned heeft werkt dit niet in Phoenix (gecko), misschien wel in IE? :P

Human Bobby


  • Johnny
  • Registratie: December 2001
  • Laatst online: 24-04 11:10

Johnny

ondergewaardeerde internetguru

Wat ook niet werkt in IE:

code:
1
border-color: transparent


Kan ik iedere border dezelfde kleur als de achtergrond gaan geven :(

Terwijl het toch gewoon standaard CSS is: http://www.w3.org/TR/1998...l#border-style-properties

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 07-05 14:42

odysseus

Debian GNU/Linux Sid

Ik kan mezelf ervaringsdeskundige noemen...zelf doe ik weinig HTML-werk, maar af en toe komt er wel eens iets uit mijn handen. Zo moest ik vorig jaar een site in elkaar sleutelen (voor een theater, met reserveringssysteem). Werkte allemaal prima, had een mooie kleurovergang-in-PNG-bestand in het geheel zitten en zag er niet al te slecht uit. Als full-time Linux-gebruiker had ik die site echter niet getest in IE (stom natuurlijk, maar als je alleen pure HTML gebruikt en niets moeilijks doet dan verwacht je geen problemen). Op school, waar alleen IE te vinden is, bekeek ik de site nog eens: plotseling bleek de kleurovergang verdeeld in tien vage horizontale strepen die een soort kleurovergang moesten verbeelden...ik was even niet zo blij met Internet Explorer, zeg maar :P.

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.

Pagina: 1