Codice PHP:
<?
if (!isset($image)){ // if not generate an error image
$img = ImageCreate(100, 100);
$red = ImageColorAllocate($img, 255, 0, 0);
$yellow = ImageColorAllocate($img, 255, 255, 0);
ImageString($img, 5, 20, 20, "No image", $yellow);
ImageString($img, 5, 20, 40, "name", $yellow);
ImageString($img, 5, 20, 60, "given!", $yellow);
ImagePNG($img);
ImageDestroy($img);
exit();
}
// check if the 'tnsize' parameter has been given
if (!isset($tnsize)) { // if not generate an error image
$img = ImageCreate(100, 100);
$red = ImageColorAllocate($img, 255, 0, 0);
$yellow = ImageColorAllocate($img, 255, 255, 0);
ImageString($img, 5, 20, 20, "No thumb", $yellow);
ImageString($img, 5, 20, 40, "size", $yellow);
ImageString($img, 5, 20, 60, "given!", $yellow);
ImagePNG($img);
ImageDestroy($img);
exit();
}
// ensure that $tnsize is an integer
$tnsize = (integer) $tnsize;
// check that the size asked for is sensible
if (($tnsize<20) or ($tnsize>300)){ // if not generate an error image
$img = ImageCreate(100, 100);
$red = ImageColorAllocate($img, 255, 0, 0);
$yellow = ImageColorAllocate($img, 255, 255, 0);
ImageString($img, 5, 20, 20, "Bad", $yellow);
ImageString($img, 5, 20, 40, "size", $yellow);
ImageString($img, 5, 20, 60, "given!", $yellow);
ImagePNG($img);
ImageDestroy($img);
exit();
}
// attempt to load the big image
if (!$bigimage = @ImageCreateFromJPEG($image)) { // if loading fails
$img = ImageCreate(100, 100); // generate an error
$red = ImageColorAllocate($img, 255, 0, 0); // image
$yellow = ImageColorAllocate($img, 255, 255, 0);
ImageString($img, 5, 20, 20, "Image", $yellow);
ImageString($img, 5, 20, 40, "not", $yellow);
ImageString($img, 5, 20, 60, "found!", $yellow);
ImagePNG($img);
ImageDestroy($img);
exit();
}
$tnimage = ImageCreate($tnsize, $tnsize);
$darkblue = ImageColorAllocate($tnimage, 0, 0, 127);
ImageColorTransparent($tnimage,$darkblue);
$sz = GetImageSize($image);
$x = $sz[0]; // big image width
$y = $sz[1]; // big image height
if ($x>$y) { // if it is the width then
$dx = 0; // the left side of the new image
$w = $tnsize; // the width of the new image
$h = ($y / $x) * $tnsize; // the height of the new image
$dy = ($tnsize - $h) / 2; // the top of the new image
}else{ // if the height is larger then
$dy = 0; // the top of the new image
$h = $tnsize; // the height of the new image
$w = ($x / $y) * $tnsize; // the width of the new image
$dx = ($tnsize - $w) / 2; // the left edgeof the new image
}
ImageCopyResized($tnimage, $bigimage, $dx, $dy, 0, 0, $w, $h, $x, $y);
ImagePNG($tnimage);
ImageDestroy($tnimage);
ImageDestroy($bigimage);
// all done!
?>