Dave
Новичок
не работает fixpng для сгенеренной png картинки
Приветствую !
создаю png файл в php, делаю у картинки уголок прозрачным, сохраняю файл как png.
Во всех браузерах картинка отображается нормально, уголок прозрачный, в IE6 - нет. Применяю fixpng (http://www.tigir.com/alpha_png.htm ) - с этой картинкой он не работает,
однако если создам png файл в фотошопе то фикс работает.
обратил внимание что png созданный в php это png8, а тот что сделал в фотошопе - png24, может в этом дело.
Хочу попробовать создать в php png24 файл б пока не могу найти как это сделать. Может дело в чем то другом, подскажите, плз.
скрипт которым генерю картинку:
Приветствую !
создаю png файл в php, делаю у картинки уголок прозрачным, сохраняю файл как png.
Во всех браузерах картинка отображается нормально, уголок прозрачный, в IE6 - нет. Применяю fixpng (http://www.tigir.com/alpha_png.htm ) - с этой картинкой он не работает,
однако если создам png файл в фотошопе то фикс работает.
обратил внимание что png созданный в php это png8, а тот что сделал в фотошопе - png24, может в этом дело.
Хочу попробовать создать в php png24 файл б пока не могу найти как это сделать. Может дело в чем то другом, подскажите, плз.
скрипт которым генерю картинку:
PHP:
$image = "aktuell.jpg";
$corner = 40;
file_exists($image) or die("No such file: ".$image); //check if image exists before processing
$dim = getimagesize($image);
//dump($dim);
//create from type handle
if($dim[2] == 2) $new = imagecreatefromjpeg($image);
elseif($dim[2] == 1) $new = imagecreatefromgif($image);
elseif($dim[2] == 3) $new = imagecreatefrompng($image);
else die("Unsupported format: ".$dim[2]);
//dump($dim);
//find colorcode
$palette = imagecreatetruecolor($dim[0], $dim[1]);
$found = false;
while($found == false) {
$r = rand(0, 255);
$g = rand(0, 255);
$b = rand(0, 255);
if(imagecolorexact($new, $r, $g, $b) != (-1)) {
$colorcode = imagecolorallocate($palette, $r, $g, $b);
$found = true;
}
}
imagearc($new, $dim[0]-$corner, $corner-1, $corner*2, $corner*2, 270, 0, $colorcode);
imagefilltoborder($new, $dim[0], 0, $colorcode, $colorcode);
imagecolortransparent($new, $colorcode); //make corners transparent
imagepng($new,'upload/test.png');
imagedestroy($new);