Необходимо сделать и прикрутить форму заказа карточки (см. вложение) Валидация: ФИО: до 60 символов, required Тип карточки: По умолчанию VIP, required Email: стандартный шаблон reg.exp., required ...
Медленное масштабирование картинок на PHP.
Здравствуйте!
При добавлении объявлении предполагается добавлять 5 фоток.
Происходит это следующим образом:
1. Исходная картинка масштабируется к размеру 400x300px
2. Исходная картинка масштабируется к размеру 80x60px
3. На большую картинку (400x300px) накладывается водяной знак
В итоге получается 10 картинок: 5 больших и 5 - их маленьких аналогов. Все большие картинки имеют водяной знак, маленикие - не имеют его.
Смысл в том, что создаётся галерея товара, сбоку видны маленькие картинки, а тыкнешь на них - подгружается большая картинка для увеличенного просмотра. В общем, всё как и положено. Работает на ура, но... На localhost это занимает 40 секунд! А если пытаетесь сделать это через Интернет - то 1.5-2 минуты... Пользователь может подумать что браузер повис или коннект сдох - и отрубит всё нафиг. Пытался выяснить причину - водяной знак накладывается моментально. Вся проблема - в масштабировании. Именно оно жрёт столько времени.
Хотел было уже аплодить фотки как есть, а уже через crontab каждые минут 5-10 из ресайзить. Но это изврат...
Есть ли выходы?
Делаю так:
// Добавляем данные о тачке в таблицу
INSERT INTO CARS_TABLE VALUES(NULL, ...)...
// Ресайзим картинку 400x300 (flag = 0 - наложить водяной знак)
image_prepare($file, 400, 300, $i, $upload_dir, 0);
// Ресайзим картинку 80x60 (flag = 1 - без водяного знака)
image_prepare('_'.$file, 80, 60, $i, $upload_dir, 1);
Ну а вот и сама ф-я image_prepare():
function image_prepare($file, $w, $h, $i, $upload_dir, $flag) {
$q = 80;
$src = imagecreatefromjpeg($_FILES['photo'.$i]['tmp_name']);
$w_src = imagesx($src);
$h_src = imagesy($src);
$path = $upload_dir.$file;
$w_dest = $w;
$h_dest = $h;
$dest = imagecreatetruecolor($w_dest,$h_dest);
imagecopyresampled($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
if(!file_exists($path)) {
// Нужен водяной знак!
if($flag == 0) {
$water_img = ROOT.'/images/design/watermark.png';
$water_hw = getimagesize($water_img);
$water = imagecreatefrompng($water_img);
imagecopy($dest, $water, 400 - $water_hw[0] - 10, 300 - $water_hw[1] - 10, 0, 0, $water_hw[0], $water_hw[1]);
$res = imagejpeg($dest, $path, $q);
}
else $res = imagejpeg($dest, $path, $q);
imagedestroy($dest);
imagedestroy($src);
}
}
Ну закачку картинок на сервер я пропустил - там ничего особенного...
PS: imagecopyresized() не предлагать! Изображения получаются корявые, в зазубринах, а быстродействие почти не улучшается.
Бюджет назначайте сами.
Заявки фрилансеров
Похожие заказы
- $12Веб-программирование3 заявкиЗакрыт15 лет назад
- $500
Нужен программист способный доработать скрипт до полноценного движка Скрипт - http://www.goldcoders.com Пример сайта с доработанным - http://gsmonitor.org/ Заказчик предполагает сделать следующие апгрейды: 1. User ...
Веб-программирование5 заявокЗакрыт15 лет назад Задание в приложенном файле. Интересует цена и срок выполнения. Рассмотрю другие варианты решения задачи наполнения инет магазина в автоматическом или полуавтоматическом режиме.
Веб-программирование1 исполнительЗавершен15 лет назадНеобходимо спарсить данные разделов с сайта http://makrent.ru/ , данные записать в cvs файл.
Веб-программирование13 заявокЗакрыт15 лет назадДобрый день. Сайт http://www.seedoff.net Есть несколько глюков, которые необходимо побороть 1. Блок рекомендуемых торрентов (вверху посередине) необходимо или исправить или заменить: Картинки попадают из базы, отсортированные по дате ...
Веб-программирование1 исполнительЗакрыт15 лет назад- $100
Нужен скрипт тизерной сети как bodyclick.net или что то в этом роде... Ждем ваших предложений!!!
Веб-программирование2 заявкиЗакрыт15 лет назад Добрый день ! Есть сайт nurtau.chc.kz. На всех страницах расположена карусель. (Прокрутка товаров) - В ФФ работает как надо, но в IE - 6,7,8 наблюдаются следующие глюки: 1 Сначала обязательно нужно нажать ...
Веб-программирование1 заявкаЗакрыт15 лет назадСайт на джумле, той версии, где карты сайта не было. Соответственно ее делали самостоятельно. Сейчас на сайте появились новые разделы и несколько пополнилась информация, необходимо обновить в данном направлении. Оплата только в рублях ...
Веб-программирование7 заявокЗакрыт15 лет назад- $10
Fatal error: Call to a member function getProperty() on a non-object in ... on line 139 PHP + MySQ, MVC парадигма. Вообще, ищу человека для долгосрочного сотрудничества. Предпочтение ...
Веб-программирование1 исполнительЗавершен15 лет назад - $50
Требуется консультация по phpbb. icq 861036
Веб-программирование8 заявокЗакрыт15 лет назад