PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PNG Bilder für IE optimieren


Dane
2007-05-27, 02:28:53
Hallo,

ich wollte Fragen ob es möglicherweise ein Tool gibt womit man png Bilder für den IE anpassen kann das diese dort einigermaßen korrekt angezeigt werden.

Laut dieser Anleitung (http://www.wbb3mods.de/tutorials/erweiterungen-plugins/p4978-png8-grafiken-im-ie6-gut-aussehen-lassen/#post4978) scheint es nur mit Fireworks zu klappen, zudem ist es mit einigen Schritten verbunden. Wenn man also mehrere Grafiken erstellen will, könnte das schon Arbeit machen. Deswegen wollte ich vorher mal nachfragen ob es vielleicht mittlerweile schon Tools gibt die PNGs automatisch anpassen so das diese auch im IE korrekt angezeigt werden.

Gast
2007-05-27, 14:31:37
am einfachsten wäre, wenn man schon den IE benutzt auch die neueste version, die kommt nämlich auch mit transparenzen klar.

Dane
2007-05-27, 14:57:41
Das ist klar, aber wohl oder übel nutzen trotzdem immernoch einen haufen den IE6.

Gast
2007-05-27, 21:37:58
das kannst du nicht automatisieren, das ganze muss bild für bild händisch angewendet werden.

außerdem selbst schuld wer den internet-explorer verwendet opera und firefox haben das problem nicht.

RMC
2007-05-27, 22:36:27
Wäh Gäste, hier muss mal wer aufräumen, ist ja widerlich!

Ich hab das immer mit einem Script gemacht, das die transparenten Teile im Bild durch ein 1x1 Pixel großes "blank.gif" ersetzt. So kann jedes PNG mit IE6 korrekt dargestellt werden (ohne graue/blaue Bereiche, wie die transparenten Teile oft beinhalten)



function alphaPNG ()
{
var agt=navigator.userAgent.toLowerCase();
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

if ( is_ie )
{
var height;
var width;
var i;
var Ausdruck;
var bgImage;

var images = document.getElementsByTagName ("img");
var cells = document.getElementsByTagName ("td");

for (i=0; i<images.length; i++)
{
if (images[i].src.indexOf(".png") != -1)
{
height = images[i].height;
width = images[i].width;
images[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+images[i].src+"', sizingMethod='scale')";
images[i].src="graphics/blank.gif";
images[i].height = height;
images[i].width = width;
}
}
for (i=0; i<cells.length; i++)
{
//alert (cells[i].background);
if (cells[i].background != "" && cells[i].background.indexOf(".png") != -1)
{
cells[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+cells[i].background+"', sizingMethod='scale')";
cells[i].background = "";
}
else
{
//alert(i);

if (cells[i].currentStyle.backgroundImage.indexOf(".png") != -1)
{
bgImage = cells[i].currentStyle.backgroundImage;

Ausdruck = /(^url\(\")(.+)(\"\))/;
Ausdruck.exec(bgImage);

cells[i].style.backgroundImage = "none";
cells[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+RegExp.$2+"', sizingMethod='scale')";
}
}
}
}
}
document.body.onLoad = alphaPNG();



Auf allen Seiten mit PNGs wird dann dieses Script hier aufgerufen (es empfiehlt sich also das einmal pro Seite zu machen)


<script language="JavaScript" type="text/javascript" src="png.js"></script>



Ist nicht von mir, ich hab die Lösung irgendwo gefunden, weiß aber nicht mehr von wo. Es gibt sicher andere Lösungen auch, aber die hier funktioniert.

Dane
2007-05-28, 13:07:11
Hallo!

Danke erstmal für den Tip, leider wurde das Script hier in der Forensoftware die ich zurzeit nutze schon in den Beta-Versionen genutzt und wurde nun aus Gründen der Performance wieder raus genommen. Das Prinzip ist nicht schlecht, doch leider wird vieles dadurch langsamer.