function _MakeTrumbal($file) {
$trumb_size = 128; // Size of trumb
list ($image_width, $image_height, $image_type) = @GetImageSize($file);
switch ($image_type) {
case 1:
$src_img = ImageCreatefromGif($file);
break;
case 2:
$src_img = ImageCreatefromJpeg($file);
break;
case 3:
$src_img = ImageCreatefromPng($file);
break;
default:
$this->ERRORS_MES[] = _('unknown_file_type');
return FALSE;
}
$or_w = $image_width;
$or_h = $image_height;
if ($or_w >= $or_h) {
$or_h_n = intval($trumb_size / $or_w * $or_h);
$or_w_n = $trumb_size;
} else {
$or_w_n = intval($trumb_size / $or_h * $or_w);
$or_h_n = $trumb_size;
}
$dst_img_t = ImageCreateTrueColor($or_w_n, $or_h_n);
ImageCopyResampled($dst_img_t, $src_img, 0, 0, 0, 0, $or_w_n, $or_h_n, $or_w, $or_h);
ImageJpeg($dst_img_t, $file . '.jpg');
ImageDestroy($dst_img_t);
ImageDestroy($src_img);
return TRUE;
}
$file - путь до оригинала на диске. Уменьшенная привеюха будет создана там же, только у нее будет двойное расширение, скажем оригинал file.png, превиюха будет называться file.png.jpg.
Да, пропорции оригинала в данном примере полностью сохраняются. Размер превиюхи будет 128 на 128 пикселей.