<?php
class My_Thumbnail
{
public static function gdThumbnailObj($AImg, $AWidth, $AHeight)
{
if (!$AImg) {
die('gd_thumbnail_obj() - $AImg error');
}
$AImg_X = ImageSX($AImg);
$AImg_Y = ImageSY($AImg);
$tmp_Y = ($AWidth / $AImg_X) * $AImg_Y;
$tmp_X = ($AHeight / $AImg_Y) * $AImg_X;
if ($tmp_Y <= $AHeight){
$thumbnail_X = $AWidth;
$thumbnail_Y = $tmp_Y;
} else {
$thumbnail_X = $tmp_X;
$thumbnail_Y = $AHeight;
}
$thumbnail = ImageCreateTrueColor(
$thumbnail_X,
$thumbnail_Y
);
imageAlphaBlending($thumbnail, false);
imageSaveAlpha($thumbnail, true);
ImageCopyResized(
$thumbnail, $AImg, //miejsce docelowe, źródło
0, 0, //gdzie ma trafić w miejscu docelowym
0, 0, //skąd ma pochodzić ze źródła
$thumbnail_X, $thumbnail_Y, //wymiary, jakie ma zająć w miejscu docelowym
$AImg_X, $AImg_Y //wymiary pobierane ze źródła
);
return $thumbnail;
}
public static function gdThumbnailFile(
$AFileName, $AWidth, $AHeight, $destFilename, $quality = 95
) {
$img = ImageCreateFromJPEG($AFileName);
$mini = self::gdThumbnailObj($img, $AWidth, $AHeight);
imagejpeg($mini, $destFilename, $quality);
}
}
Listing 31.1. Klasa My_Thumbnail z pliku Thumbnail.php
Rozdział 31. Przesyłanie plików na serwer