Witam, od niedawna bawię się biblioteką GD. Chciałbym stworzyć skrypt, który pobierze losową grafikę z wybranego folderu, zmieni jej format na .png, a n astępnie wyświetli. Wszytko jest pięknie tylko jak zmienić format grafiki? Jeżeli wyślę header z png i użyję imagecreatefrom innego formatu wyświetlają się nierozkodowane znaki.
Jaką funkcją wyświetlasz obraz? Powinieneś użyć imagepng()
Temat uznaję za zamknięty , co prawda nie tak jak chciałem początkowo, ale działa. Jest to rotator userbarów.
Tak to wygląda:
<?php
//Dodatkowe userbary
$img=array(
array('http://miniprofile.xfire.com/bg/sh/type/2/grzesie2k.png', '.png')
);
$i=count($img);
foreach(scandir('userbars') as $plik){
$roz=substr($plik, -4);
if($roz=='.jpg' || $roz=='jpeg' || $roz=='.png' || $roz=='.gif' || $roz=='.bmp'){
$img[$i][0]='userbars/'.$plik;
$img[$i][1]=$roz;
$i++;
}
}
$wyb=rand(0, count($img)-1);
switch($img[$wyb][1]){
case '.jpg':
header("Content-type: image/jpeg");
$img=imagecreatefromjpeg($img[$wyb][0]);
imagejpeg($img);
break;
case 'jpeg':
header("Content-type: image/jpeg");
$img=imagecreatefromjpeg($img[$wyb][0]);
imagejpeg($img);
break;
case '.png':
header("Content-type: image/png");
$img=imagecreatefrompng($img[$wyb][0]);
imagesavealpha($img, true);
imagepng($img);
break;
case '.gif':
header("Content-type: image/gif");
$img=imagecreatefromgif($img[$wyb][0]);
imagesavealpha($img, true);
imagegif($img);
break;
case '.bmp':
header("Content-type: image/bmp");
$img=imagecreatefrombmp($img[$wyb][0]);
imagejbmp($img);
break;
}
imagedestroy($img);
?>