PDA

Просмотр полной версии : Создание превьюшек


sharoff
07.02.2009, 00:22
Ребят, доброе время суток.
Если что - не ругайтесь, нет особо много времени пользоваться поиском.
Нужен простенький скрипт загрузки картинок на сервер (желательно и с ПК и с URL), которые имеют рандомное название, с созданием превьюшек, которые масштабируются пропорционально по ширине (всмысле задается только ширина, высоту он сам подгоняет).

Если кто может - выдерните из ДЛЕ, может кто-то для себя писал, скиньте пожалуйста.

Заранее огромное спасибо!

Zitt
07.02.2009, 00:36
4images

.:EnoT:.
07.02.2009, 00:49
Вот старая функция пропорционального ресайза, когда-то давно писал.


function resize($image, $type, $width=500, $height=400){

if($type == 'gif') $srcImage = ImageCreateFromGif($image);
elseif($type == 'jpeg') $srcImage = ImageCreateFromJpeg($image);
elseif($type == 'png') $srcImage = ImageCreateFromPng($image);
elseif($type == 'bmp') $srcImage = ImageCreateFromwBmp($image);
else $srcImage = false;

if($srcImage){

$srcWidth = ImageSX($srcImage);
$srcHeight = ImageSY($srcImage);

if(($width < $srcWidth) || ($height < $srcHeight)){
$ratioWidth = $srcWidth/$width;
$ratioHeight = $srcHeight/$height;

if($ratioWidth < $ratioHeight){
$destWidth = $srcWidth/$ratioHeight;
$destHeight = $height;
}else{
$destWidth = $width;
$destHeight = $srcHeight/$ratioWidth;
}

$resImage = ImageCreateTrueColor($destWidth, $destHeight);
ImageCopyResampled($resImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);

if($type == 'gif') return ImageGif($resImage, $image);
elseif($type == 'jpeg') return ImageJpeg($resImage, $image);
elseif($type == 'png') return ImagePng($resImage, $image);
elseif($type == 'bmp') return ImagewBmp($resImage, $image);
else return false;

ImageDestroy($srcImage);
ImageDestroy($resImage);
}
}
}



Ну а с загрузкой всё просто.
Локально: cм. функции move_uploaded_file() или copy()
А удалённо: file_get_contents() и сохраняешь через fopen() и fputs()