PHP: Transparent png

Tråden skapades och har fått 22 svar. Det senaste inlägget skrevs .
1

Kanske bara är trött så här efter helgen, men jag lyckas verkligen inte att från scratch skapa en transparent png som är transparent när man öppnar den i IE Win (meddelst filter) eller i Photoshop. Däremot som är transparent när den öppnas i safari eller förhandsvisning.... Deadline imorrn, så har någon lite input blir jag glad Vill på semester!

/.scooter

  • Medlem
  • Nacka
  • 2004-07-19 16:42

IE stödjer väl inte PNG?

  • Medlem
  • Nacka
  • 2004-07-19 16:44

Fast PS verkar ju skumt... Funkar min?

Ursprungligen av Arvid:

Fast PS verkar ju skumt... Funkar min?

Funkar i såväll IE Win som PS - skapade du den via PHP?

Ursprungligen av Arvid:

IE stödjer väl inte PNG?

Nej, inte native, men man använder sig av ett filter som appliceras via css och vips funkar transparans!

  • Medlem
  • Nacka
  • 2004-07-19 16:45

Min verkar funka för mig i PS iaf. Vilken version av PS kör du? Har ett vagt minne att äldre PS hade dåligt stöd för png... Dock bara ett vagt minne...

Ursprungligen av Arvid:

Min verkar funka för mig i PS iaf. Vilken version av PS kör du? Har ett vagt minne att äldre PS hade dåligt stöd för png... Dock bara ett vagt minne...

Ditt minne känns bekant, men jag kör CS så det borde inte vara något problem... Och Mac, ju

Koden:

$ImgGD = imagecreate($width,$height);
$ImgWhite = imagecolorallocate($ImgGD, 255, 255, 255);
imagefill($ImgGD, 0, 0, $ImgWhite);
imagecolortransparent($ImgGD, $ImgWhite);
imagepng($ImgGD,"images/230_128.png");

Ger en transparent, tom bild.

Koden:

$ImgGD = imagecreatetruecolor($width,$height);
$ImgWhite = imagecolorallocate($ImgGD, 255, 255, 255);
imagefill($ImgGD, 0, 0, $ImgWhite);
imagecolortransparent($ImgGD, $ImgWhite);
imagepng($ImgGD,"images/230_128.png");

ger inte en transparent, tom bild, utan en där färgen (vit) som definierats som transparent inte är transparent, annat än i Safari och förhandsvisning...

Gör jag något fundamentalt fel när jag skapar min transparenta färg? Eller ska det inte gå att få transparens i 24-bitarsbilder?

Jag får snart ett frispel här!!!

  • Medlem
  • 2004-07-19 21:24

Här är länken som hjälpte mig med just det: http://www.alistapart.com/articles/pngopacity/

Det finns även en work-around för gamla läsare - att använda giffar för dessa. Ser inte lika bra ut, men funkar.

Sajt med allt detta: http://www.kajak.org/hem/index.asp

Men det tar ett tag att få allt att stämma...

Annars har vi det enkla sättet här: http://homepage.ntlworld.com/bobosola/pngtestfixed.htm

En rad kod på sidan.

Om jag skall vara ärlig så verkar PHP lösningen krångligare. Men jag kanske har fel?

Problemet är inte att visa en transparent png i IE - det funkar bra (faktistk använder jag samma lösning som ALA-länken ovan) - problemet är att det inte verkar gå att skapa en transparent png i truecolor med PHP... I palette-mode går det bra, men inte i truecolor (png24)...

Alla tips välkomna!!!

  • Medlem
  • Karlstad
  • 2004-07-20 10:40

Jag använder Dreamweaver, och en snubbe som heter Ranjan har gjort en extension som använder en transparent gif 1 x 1 px för att lösa problemet. Det funkkade. Men nu har han tydligen klurat ut ett sätt att lösa problemet via CSS: http://ranjan.ws/default.asp?id=41

Han har pysslat med ddet här ganska länge, och har gjort en del exempel. En gång i tiden hade jag länkarna till dom, men har tydligen slängt dom. Men han är ganska bussig, så om du mailar honom här: http://www.dreamlettes.net/contact.asp och skriver nåt snällt, så skickar han säkert lite tips och instruktioner. Han är indier, men finns i Kalifornien, så engelska funkar nog bäst.

Ursprungligen av Danne V:

Jag använder Dreamweaver, och en snubbe som heter Ranjan har gjort en extension som använder en transparent gif 1 x 1 px för att lösa problemet. Det funkkade. Men nu har han tydligen klurat ut ett sätt att lösa problemet via CSS: http://ranjan.ws/default.asp?id=41

Han har pysslat med ddet här ganska länge, och har gjort en del exempel. En gång i tiden hade jag länkarna till dom, men har tydligen slängt dom. Men han är ganska bussig, så om du mailar honom här: http://www.dreamlettes.net/contact.asp och skriver nåt snällt, så skickar han säkert lite tips och instruktioner. Han är indier, men finns i Kalifornien, så engelska funkar nog bäst.

Men varför krångla?

Jo, fast jag har inget problem med att visa transparenta png:er - jag har problem med att skapa dem i truecolor via PHP/GD...

  • Medlem
  • Karlstad
  • 2004-07-20 11:14
Ursprungligen av scooterbabe:

Jo, fast jag har inget problem med att visa transparenta png:er - jag har problem med att skapa dem i truecolor via PHP/GD...

Sorry, om jag inte var så seg i skallen (kom i säng 4 imorse) så hade jag sett det.

Du är ursäktad - själv ganska seg - 04:30 - 0800 är inte heller mkt sömn - semester, ge mig semester!!!!

  • Medlem
  • Stockholm
  • 2004-07-20 12:30
Ursprungligen av scooterbabe:

Kanske bara är trött så här efter helgen, men jag lyckas verkligen inte att från scratch skapa en transparent png som är transparent när man öppnar den i IE Win (meddelst filter) eller i Photoshop. Däremot som är transparent när den öppnas i safari eller förhandsvisning.... Deadline imorrn, så har någon lite input blir jag glad Vill på semester!

/.scooter

Skumt, din kod verkar skicka ut transparenta bilder på min Linux-server. Har du provat att sätta den transparenta färgen till svart istället för vit? Har varit någon bugg just där i tidigare versioner av PHP när man använt truecolor om jag inte minns helt fel.

~peter

Ursprungligen av peterj:

Skumt, din kod verkar skicka ut transparenta bilder på min Linux-server. Har du provat att sätta den transparenta färgen till svart istället för vit? Har varit någon bugg just där i tidigare versioner av PHP när man använt truecolor om jag inte minns helt fel.

~peter

Kan du skapa en truecolor-png och bifoga till meddelandet så ska jag kontrollera om den är korrekt..?

  • Medlem
  • Stockholm
  • 2004-07-20 13:19
Ursprungligen av scooterbabe:

Kan du skapa en truecolor-png och bifoga till meddelandet så ska jag kontrollera om den är korrekt..?

Vid närmare verifiering fick jag liknande resultat som du, men det fungerade fint med svart som transparent färg för truecolor-bilden, så här:

$ImgGD = imagecreatetruecolor($width,$height);
$ImgWhite = imagecolorallocate($ImgGD, 0, 0, 0);
imagefill($ImgGD, 0, 0, $ImgWhite);
imagecolortransparent($ImgGD, $ImgWhite);
imagepng($ImgGD,"230_128_3.png");

Kolla på http://peter.johansson.org/temp/transparent/

  • Medlem
  • 2004-11-14 18:19

Finns det någon som enkelt kan förklara hur man får PNG att funka i IE utan att använda javascript. Ranjans förklaring flög i luftballong långt över mitt huvud.

Javascriptlösningen är väldigt lätt att göra, men iom SP2 på Windows är det inte lika lätt för besökarna av webplatsen. Dessutom blinkar det lite fult.

Tips? (skriv gärna så att förståndhandikappade kan förstå)

  • Medlem
  • Stockholm
  • 2004-11-17 11:35
#logopng { 
	filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/logo.png');
}
<img id="logopng" src="img/logo.png" alt="" />
1
Bevaka tråden