|
|
|
| Народ, всем привет! Вопрос такой: написал функцию для создания уменьшенных копий изображений, при чем написал её года два назад и до этого момента все было путем. Сегодня написал заказчик, мол, картинки размером более полутора метра не загружаются на сервак.. Проверил (думал настройки хостера запрещают большие файлы грузить) и заметил интересную особенность - картинки загружаются, а вот превьюшки не создаются! Никто не сталкивался?? Даж не знаю че делать, вот код, может кто заметит косяк:
function GenerateThumb($originalFilePath, $thumbFilePath, $resizeBy = 'w', $size = 200, $deleteOriginal = false)
{
set_time_limit(0);
$fileExtension = GetFileExtension($originalFilePath);
switch($fileExtension)
{
case 'gif':
$imageOpenFunction = 'imagecreatefromgif';
$thumbSaveFunction = 'imagegif';
break;
case 'png':
$imageOpenFunction = 'imagecreatefrompng';
$thumbSaveFunction = 'imagepng';
break;
case 'jpg':
case 'jpeg':
$imageOpenFunction = 'imagecreatefromjpeg';
$thumbSaveFunction = 'imagejpeg';
break;
default:
break;
}
$source = @$imageOpenFunction($originalFilePath);
$srcWidth = ImagesX($source);
$srcHeight = ImagesY($source);
switch($resizeBy)
{
case 'w':
$destWidth = $size;
$destHeight = $srcHeight/($srcWidth/$destWidth);
break;
case 'h':
$destHeight = $size;
$destWidth = $srcWidth/($srcHeight/$destHeight);
break;
default:
if($srcWidth > $srcHeight)
{
$destWidth = $size;
$destHeight = $srcHeight/($srcWidth/$destWidth);
}
else
{
$destHeight = $size;
$destWidth = $srcWidth/($srcHeight/$destHeight);
}
break;
}
$thumb = ImageCreateTrueColor($destWidth, $destHeight);
ImageCopyResampled($thumb, $source, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);
@$thumbSaveFunction($thumb, $thumbFilePath);
ImageDestroy($source);
ImageDestroy($thumb);
if($deleteOriginal)
unlink($originalFilePath);
}
|
З.Ы. Загружаю обычный jpeg, размер 1400-1500 Kb. Повторюсь, на картинках до метра проблем нет | |
|
|
|
|
|
|
|
для: malish
(30.11.2008 в 19:21)
| | Помимо ограничений на размер загружаемого файла, существует ограничение занимаемого скриптом оперативной памяти. | |
|
|
|
|
|
|
|
для: BinLaden
(30.11.2008 в 19:25)
| | как уего увеличить? ini_set какой параметр? | |
|
|
|
|
|
|
|
для: malish
(30.11.2008 в 19:33)
| | php.ini
memory_limit = 8M ;
но это только в локале можно поправить, какой же хостер это Вам позволит?
Столкнулся с такой же проблемой, при масштабировании больших фоток не хватает памяти.
надо переписывать тумбмакер, кто че подскажет? | |
|
|
|
|
|
|
|
для: Gеоргий
(08.01.2009 в 03:51)
| | >какой же хостер это Вам позволит?
любой адекватный. | |
|
|
|
|
|
|
|
для: ddhvvn
(08.01.2009 в 12:22)
| | Адресок не подскажете?
Чтоб на виртуальном хостинге позволял спокойно память скриптам как вздумается выставлять. | |
|
|
|