Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Skrypt tworzenia miniaturek
Orish
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.11.2007

Ostrzeżenie: (0%)
-----


Z tym skryptem (nie moim) jest coś nie tak:

Kod
<?
header("Content-type: image/png");

$img = $_GET['img'];

// Wywalamy mozliwosc referencji poza katalogiem galerie
$img = str_replace( ".." , "" , $img );
$ext = substr ( $img , strpos( $img , "." ) + 1 );

switch ( $ext )
{
 case 'gif':
     $im     = imagecreatefromgif($img);
 break;
 
 case 'jpg':
     $im     = imagecreatefromjpeg($img);
 break;
 
 case 'png':
     $im     = imagecreatefrompng($img);
 break;
 
 case 'bmp':
     $im     = imagecreatefromwbmp($img);
 break;
 
}

$sx     = imagesx ( $im );
$sy     = imagesy ( $im );

if ( $_GET['size'] == 1 && ($sx > 300 || $sy > 300) )
{
 $y = (300 * $sy) / $sx;
 $out    = imagecreatetruecolor( 300 , $y );
 imagecopyresampled( $out , $im , 0 , 0 ,0 , 0 , 300 , $y , $sx , $sy );
}
elseif ( $_GET['size'] == 2 )
{
 $out    = imagecreatetruecolor( 230 , 172 );
 imagecopyresampled( $out , $im , 0 , 0 ,0 , 0 , 230 , 172 , $sx , $sy );
}
elseif($_GET['size'] == 3)
{
 $out    = imagecreatetruecolor( 200 , 150 );
 imagecopyresampled( $out , $im , 0 , 0 ,0 , 0 , 200 , 150 , $sx , $sy ); 
}
elseif($sx > 80 || $y > 60)
{
 $out    = imagecreatetruecolor( 80 , 60 );
 imagecopyresampled( $out , $im , 0 , 0 ,0 , 0 , 80 , 60 , $sx , $sy );
}
else
{
 $out = $im;
}

imagepng($out);
imagedestroy($im);
imagedestroy($out);

?>


Mianowicie miniaturki z jpg i gif tworzy bardzo ładnie, ale nie radzi sobie z png i bmp (zamiast miniaturki jest czarny obrazek). Nie wiem za bardzo dlaczego.
Poza tym nie tworzy miniaturek z obrazków nazywanych np. obrazek.costam.jpg, a więc z dwoma kropkami, co wynika ze specyfiki funkcji strpos. Można jakoś inaczej to rozwiązać?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:55