Создание уменьшенной копии изображения
Например, вы программируете на PHP загрузку изображений в фотоальбом и хотите, чтобы на лету создавались уменьшенные копии загружаемых картинок, складывались в ту же папку, но имели отличительный признак.
function generatePreview($inFolder, $fromFile,
$makeWidth=150, $pref="_",
$quality="100") {
if($fromFile!=false) {
$src=imagecreatefromjpeg($inFolder.$fromFile);
$props = getImageSize($inFolder.$fromFile);
$propsw = $props[0];
$propsh = $props[1];
$propskoeff = $propsw/$makeWidth;
$propshnew = round($propsh/$propskoeff);
$dst=imagecreatetruecolor($makeWidth,$propshnew);
imagecopyresampled($dst, $src,
0, 0, 0, 0, ImageSX($dst), ImageSY($dst),
ImageSX($src), ImageSY($src));
imagejpeg($dst,$inFolder.$pref.$fromFile,$quality);
}
}
В качестве обязательных параметров следует передать директорию, в которой хранятся изображения, и имя исходного файла (предполагается, что он уже загружен). Далее необязательные параметры, в которых уже есть значения по умолчанию: ширина уменьшенного файла, префикс (военная хитрость: префикс может содержать в себе имя директории для уменьшенных копий, только не забудьте её создать) и качество (по умолчанию наилучшее).
Функция вызывается в нужном месте, допустим, так (при $uploaded — имени загруженного файла):
generatePreview('/images/', $uploaded, 120, 'small_');
Комментарии