Я создаю скрипт для сканирования каталога изображений, а затем создаю миниатюру в другой каталог.Scan Directory and Create Thumbnail Images
function createThumbs($pathToImages, $pathToThumbs, $thumbWidth)
{
// Turn off all error reporting
error_reporting(0);
set_time_limit(0);
// open the directory
$dir = opendir($pathToImages);
// loop through it, looking for any/all JPG files:
$i='1';
while (false !== ($fname = readdir($dir))) {
// parse path for the extension
$info = pathinfo($pathToImages . $fname);
// continue only if this is a JPEG image
$source_file_name = basename($source_image);
$source_image_type = substr($source_file_name, -3, 3);
switch(strtolower($info['extension']))
{
case 'jpg':
$img = imagecreatefromjpeg("{$pathToImages}{$fname}");
break;
case 'gif':
$img = imagecreatefromgif("{$pathToImages}{$fname}");
break;
case 'png':
$img = imagecreatefrompng("{$pathToImages}{$fname}");
break;
}
echo "$i : Creating thumbnail for small_$fname <br />";
// load image and get image size
$width = imagesx($img);
$height = imagesy($img);
// this will be our cropped image
// copy the crop area from the source image to the blank image created above
// calculate thumbnail size
$new_width = $thumbWidth;
$new_height = $thumbWidth;
// create a new tempopary image
$tmp_img = imagecreatetruecolor($new_width, $new_height);
// copy and resize old image into new image
imagecopyresized($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
switch(strtolower($info['extension']))
{
case 'jpg':
imagejpeg($tmp_img, "{$pathToThumbs}small_$fname", 100);
break;
case 'gif':
imagegif($tmp_img, "{$pathToThumbs}small_$fname");
break;
case 'png':
imagepng($tmp_img,"{$pathToThumbs}small_$fname", 0);
break;
}
imagedestroy($img);
imagedestroy($tmp_img);
$i++;
}
// close the directory
closedir($dir);
}
И Мы называем эти функции с
createThumbs("media/normal/","media/small/",70);
Скрипт работает хорошо, но проблема, я имею около 4000 изображений, и сценарий перестал создавать миниатюру около 2400-2600 изображений
вы можете использовать эту ссылку http://saharandev.co.uk/saharan/create_thumbs_small.php
Кто-нибудь может помочь?
Спасибо
Что вы подразумеваете под «прекрасным созданием»? Сценарий прекратил выполнение? Не перебирать эти изображения? Выполнять отлично, но просто ничего не делать с этими изображениями? Выбросить исключение? Выбросить ошибку? Предупреждение? На какой линии? – Patashu
Просмотрите журнал: остановился ли сценарий с тайм-аутом, OOM или что-то еще? –
@Patashu: Я запустил скрипт, и он остановился на '2335: Создание миниатюры для small_S60.10700.jpg', я рекомендую удалить« error_reporting (0); ', чтобы показать ошибки. –