Nahrada za png

Programovacie jazyky, rady, poradňa...
ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

Nahrada za png

Príspevok od používateľa ehm123 »

Casto robim web pri ktorom mam problem s gifom...

proste rozstriham web napr do png je to vsetko v poriadku v každom prehliadači okrem IE ten bud nezobrazi priesvitnost a hodi tam hocjaku farbu alebo inu farbu atd...jedina možnosť ako uložiť priesvitný obrázok je gif...bohužial ked je v obrázku viac ako 256 farieb tak niektore farby zlúčy..neexistuje nejaky priesvitný format ako png aby ho zobrazil ie?
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

pokial viem, tak iny priesvitny format nie je. nieco taketo riesil kamarat, lebo IE to ignorovalo, ale tusim je na to nejaky JS. pozriem sa ti na to a pastnem daco... snad mi este plati ten FTP ucet :D
JS je pre mna spanielska dedina a nemam ani paru co je co, tak ti pastnem toto cele:

Kód: Vybrať všetko

/* $Id: pngfix.js,v 1.1.2.2 2005/11/30 21:09:00 robinmonks Exp $ */



// Correctly handle PNG transparency in Win IE 5.5 or higher.

// http://homepage.ntlworld.com/bobosola. Updated 02-March-2004

// updated 2005-05-11 to test for IE



function correctPNG() {

if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && navigator.userAgent.indexOf("Opera") == -1 && window.attachEvent) {

    for(var i=0; i<document.images.length; i++) {

  	  var img = document.images[i]

  	  var imgName = img.src.toUpperCase()

  	  if (imgName.substring(imgName.length-3, imgName.length) == "PNG") {

        var imgID = (img.id) ? "id=\"" + img.id + "\" " : ""

        var imgClass = (img.className) ? "class=\"" + img.className + "\" " : ""

        var imgTitle = (img.title) ? "title=\"" + img.title + "\" " : "title=\"" + img.alt + "\" "

	var imgOver = ""

	if (img.onmouseover != null) {

		var s = img.onmouseover + ""

		s = s.replace(/[\s\S]+\{[\s]*([\s\S]*)[\s]*\}$/, "$1");

		imgOver = "onmouseover=\"" + s + "\" "

	}

	var imgOut = ""

	if (img.onmouseout != null) {

		var s = img.onmouseout + ""

		s = s.replace(/[\s\S]+\{[\s]*([\s\S]*)[\s]*\}$/, "$1")

		imgOut = "onmouseout=\"" + s + "\" "

	}

	var imgDown = ""

	if (img.onmousedown != null) {

		var s = img.onmousedown + ""

		s = s.replace(/[\s\S]+\{[\s]*([\s\S]*)[\s]*\}$/, "$1");

		imgDown = "onmousedown=\"" + s + "\" "

	}

	var imgClick = ""

	if (img.onclick != null) {

		var s = img.onclick + "";

		s = s.replace(/[\s\S]+\{[\s]*([\s\S]*)[\s]*\}$/, "$1");

	        imgClick = "onclick=\"" + s + "\" "

	}

	var imgAttr = imgID + imgClass + imgTitle + imgOver + imgOut + imgDown + imgClick

        var imgStyle = "display:inline-block;" + img.style.cssText 

        if (img.align == "left") imgStyle = "float:left;" + imgStyle

        if (img.align == "right") imgStyle = "float:right;" + imgStyle

        if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle		

        var strNewHTML = "<span " + imgAttr

		      + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"

          + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"

		      + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 

		      img.outerHTML = strNewHTML

		      i = i-1

	    }

    }

  }

}

if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && navigator.userAgent.indexOf("Opera") == -1 && window.attachEvent) {

  window.attachEvent("onload", correctPNG);

}

ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

Príspevok od používateľa ehm123 »

hmm skusal som a nix
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

nuz tak sry, ale tu moje "vedomosti" o png koncia. nikdy som s tym nerobil a ani mi to netrebalo. skus interval.cz tam sa zaoberaju kadejakymi vyhcytavkami ;)
ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

Príspevok od používateľa ehm123 »

hmm ale toto neni vychytavka toto je prije*** internet explorer
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

Príspevok od používateľa ehm123 »

mno ja neviem po anglicky moc dobre...pridal som toto do javascriptu

var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])

function fixPNG(myImage)
{
if ((version >= 5.5) && (version < 7) && (document.body.filters))
{
var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
var imgTitle = (myImage.title) ?
"title='" + myImage.title + "' " : "title='" + myImage.alt + "' "
var imgStyle = "display:inline-block;" + myImage.style.cssText
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + myImage.width
+ "px; height:" + myImage.height
+ "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"
myImage.outerHTML = strNewHTML
}
}

a nic
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Vložil si to do funkcie a to si nemal robiť. Nechaj to v tom súbore pngfix.js a do tvojho html vlož iba to

Kód: Vybrať všetko

<!--[if lt IE 7.]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->
ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

Príspevok od používateľa ehm123 »

sak to som spravil
Napísať odpoveď