KorP
Новичок
Помогите плиз с оптимизацией скрипта загрузки и ресайза картинки
надеюсь помидорами меня не закидают. почитал маны, всё что мог лишнее из скрипта выкинул, сотавил только нужное, но всё-равно, при загрузке больших картинок (до 10мп) скрипт работает медленно даже на локальном сервере. понятное дело что нужна тонкая настройка апача и пхп и возможно железо на сервере помощнее, но пока хочется спросить - можно ли в самом коде ещё что то оптимизировать?
логика скрипта:
1. загружаем картинку
2. ресайзим до 1200 по большой стороне и накладываем надпись, сохраняем
3. берём сохранённую картинку и ресайзим до размера превьюшки, сохраняем
в принципе всё, потом уже просто вывод ссылок и т.д. но здесь я не думаю что это уже как то сильно влияет на скорость выполнения, вывести строку с адресом картинки не проблема...код:
надеюсь помидорами меня не закидают. почитал маны, всё что мог лишнее из скрипта выкинул, сотавил только нужное, но всё-равно, при загрузке больших картинок (до 10мп) скрипт работает медленно даже на локальном сервере. понятное дело что нужна тонкая настройка апача и пхп и возможно железо на сервере помощнее, но пока хочется спросить - можно ли в самом коде ещё что то оптимизировать?
логика скрипта:
1. загружаем картинку
2. ресайзим до 1200 по большой стороне и накладываем надпись, сохраняем
3. берём сохранённую картинку и ресайзим до размера превьюшки, сохраняем
в принципе всё, потом уже просто вывод ссылок и т.д. но здесь я не думаю что это уже как то сильно влияет на скорость выполнения, вывести строку с адресом картинки не проблема...код:
PHP:
$main_dir = "tmp/";
$uploaddir = "c:/http/apache group/apache/htdocs/".$main_dir.$dir."/";
$thumbdir = "c:/http/apache group/apache/htdocs/".$main_dir.$dir."/thumb/";
if (isset($_FILES["userfile"])) {
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
$image = $uploaddir.$_FILES['userfile']['name'];
$max_size = 1200;
$size = getimagesize($image);
if($size[0] > $size[1]) {
$divisor = $size[0] / $max_size;
}
else {
$divisor = $size[1] / $max_size;
}
$new_width = $size[0] / $divisor;
$new_height = $size[1] / $divisor;
$old_image = ImageCreateFromJPEG($image);
$new_image = ImageCreateTrueColor($new_width,$new_height);
ImageCopyResampled($new_image,$old_image,0,0,0,0,$new_width,$new_height,$size[0],$size[1]);
$white = imagecolorallocate($new_image, 255, 255, 255);
$text = 'KorP 2007';
$font = 'calibri.ttf';
imagettftext($new_image, 12, 0, 5, 20, $white, $font, $text);
ImageJPEG($new_image, $uploaddir.$_FILES['userfile']['name'], 100);
$image = $uploaddir.$_FILES['userfile']['name'];
$thumb_size = 600;
$size = getimagesize($image);
if($size[0] > $size[1]) {
$divisor = $size[0] / $thumb_size;
}
else {
$divisor = $size[1] / $thumb_size;
}
$new_width = $size[0] / $divisor;
$new_height = $size[1] / $divisor;
$old_image = ImageCreateFromJPEG($image);
$new_image = ImageCreateTrueColor($new_width,$new_height);
ImageCopyResampled($new_image,$old_image,0,0,0,0,$new_width,$new_height,$size[0],$size[1]);
ImageJPEG($new_image, $thumbdir.$_FILES['userfile']['name'], 100);