Resize .png uden at gøre transparent bg sort
HelloNår jeg ændrer størrelsen på et .png-billede med transparent baggrund, bliver det transparante til sort. Det skyldes at imagecreatefromtruecolor() laver et sort billede, og når det transparente (resizede) billede efterfølgende bliver kopieret oveni, er det klart at der bliver sort baggrund.
Jeg har fået nedenstående metode anbefalet. Den forsøger at overskrive det sorte med transparent farve inden man flytter det nye billede derover. Men det virker ikke - i hvert fald ikke i min GD-lib version (2.0.20-1)
Men der må da være en metode til at bevare den transparente baggrund? Hvordan resizer man et transparent .png-billede, uden at gøre baggrunden sort?
På forhånd tak
seekasr
----------------------------------
Eksempel:
Før GD-lib: http://www.rareye.com/sites/aho/img/ul/21.png
Efter GD-lib: http://www.rareye.com/sites/aho/img/img.php?id=21
Kode:
<?php
$image = imagecreatefrompng(foo);
//Højde og bredde
$iw = 80;
$ih = ($iw*(imagesy($image)/imagesx($image)))+1;
//Det sorte billede
$image_new = imagecreatetruecolor($iw,$ih);
//Forsøg på at erstatte sort med transparent - virker ikke
$transp = magecolortransparent($image);
imagecolortransparent($image_new, $transp);
imagefilledrectangle($image_new,0,0,$iw,$ih,$transp);
//Resample
imagecopyresampled($image_new,$image,0,0,0,0,$iw,$ih,imagesx($image),imagesy($image));
//Output image
header("Content-type: image/png");
imagepng($image_new);
?>
