IMG thumbnail - массовое создание миниатюр
Понедельник, 02 Май 2011
Очень часто возникает необходимость создания превью изображений, и если таких изображений достаточно много, то создавать миниатюры в графическом редакторе будет очень утомительно. Для решения этой задачи был написан простенький скрипт на PHP который создает миниатюры всех изображений из одной папки и сохраняет их в новой, при этом возвращает массив с ссылками на миниатюры.
- function img_resize($src, $dest, $width, $height, $rgb, $quality){
- if ($size === false) return false;
- // Определяем исходный формат по MIME-информации, предоставленной
- // функцией getimagesize, и выбираем соответствующую формату
- // imagecreatefrom-функцию.
- $icfunc = "imagecreatefrom" . $format;
- $x_ratio = $width / $size[0];
- $y_ratio = $height / $size[1];
- $use_x_ratio = ($x_ratio == $ratio);
- $isrc = $icfunc($src);
- $idest = imagecreatetruecolor($width, $height);
- imagefill($idest, 0, 0, $rgb);
- imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0,
- $new_width, $new_height, $size[0], $size[1]);
- imagejpeg($idest, $dest, $quality);
- imagedestroy($isrc);
- imagedestroy($idest);
- return true;
- }
- function list_file($dir){
- $dir .= '/'; //добавляем слеш в конец если его нет
- }
- if($file!="."&&$file!=".."){
- //если это не директория
- $files[]=$file;
- }
- }
- }
- return $files;
- }
- $files=list_file('./pict');
- for($i=0;$i<count($files);$i++){
- img_resize("./pict/".$files[$i], "new/".$files[$i], 220, 151, 0xffffff, 100);
- }
- }else{
- echo "Отсутствую файлы для обработки!";
- }
Данный скрипт состоит из двух функций:
- img_resize - создает миниатюры оригинального изображения по заданным параметрам*
- list_file - возвращает массив ссылок на оригиналы изображений из папки pict
* Параметры функции img_resize:
- $src - путь к исходному изображению
- $dest - путь к будущей миниатюре
- $width - ширина миниатюры
- $height - высота миниатюры
- $rgb - фон миниатюры
- $quality - качество миниатюры
Скачать пример: IMG thumbnail.
PS. Читайте последние записи RSS Подписка на RSS