Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Маштабирование картинки 
:(
    Опции темы
yUAC
Дата 23.2.2005, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 9.6.2004

Репутация: нет
Всего: 3



На всякий случай, если Вы еще не поняли: масштабирование картинок ОЧЕНЬ СЕРЬЕЗНО НАГРУЖАЕТ СИСТЕМУ, я не видел еще ни одной библиотеки для ПХП по работе с графикой, которая бы использовала видеокарту для получения уменьшенных копий изображения (а это могло бы очень серьезно уменьшить нагрузку, создаваемую на сервер, хотя качество при этом бы пострадало). Сохранять уменьшенные копии нужно только в JPEG, т.к. другие форматы типа PNG или GIF сжимают без потерь, и зачастую уменьшенная копия картинки весит больше, чем исходная! Это объясняется тем, что при масштабировании очень серьезно изменяется структура картинки, зачастую нарушается и её геометрия, соответственно при работе с сжатием без потерь могут возникнуть очень серьезные проблемы.

P.S. В GD2 есть еще одна функция для уменьшения картинки - imagecopyresampled. С её помощью получаются тумбнейлзы намного лучшего качества (идет «умное» сжатие изображения, намного более приятное глазу), но при этом нагрузка возрастает еще в несколько раз. Может быть лет через 10 разницы между этими функциями не будет, но везде, где только это возможно я советую использовать imagecopyresized, т.к. нагрузка на сервер серьезно уменьшается.
PM MAIL   Вверх
aleksey_from_kg
Дата 27.12.2006, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 21.10.2006

Репутация: нет
Всего: нет



Вопрос в тему. 
У меня есть код масштабирования картинки. На локалке он нормально работает, а вот на сервере что-то работать не хочет.

Вот код
Код

<?php
// Функция автоматического масштабирования изображения
// $filename — имя исходного изображения
// $smallimage — имя файла уменьшенной копии
// $w и $h — максимальные размеры изображения по ширине и высоте
function resizeimg($filename, $smallimage, $w, $h)
{
// Определение коэффициента сжатия уменьшенной копии изображения
$ratio = $w/$h;
// Получение размеров исходного изображения
$size_img = getimagesize($filename);
// Если размеры меньше, то масштабирование не нужно
if (($size_img[0]<$w) && ($size_img[1]<$h)) return true;
// Определение коэффициента сжатия исходного изображения
$src_ratio=$size_img[0]/$size_img[1] ;
// Вычисление размеров уменьшенной копии, чтобы при
// масштабировании были сохранены пропорции исходного изображения
if ($ratio<$src_ratio) $h = $w/$src_ratio;
else $w - $h*$src_ratio;
// Создание пустого изображения по заданным размерам
$dest_img = imagecreatetruecolor($w, $h);
// Вызов функции создания изображения
// в зависимости от расширения исходного файла
if ($size_img[2]==2) $src_img = imagecreatefromjpeg($filename);
else if ($size_img[2]==l) $src_img = imagecreatefromgif($filename);
else if ($size_img[2]==3) $src_img = imagecreatefrompng($filename);
// Масштабирование изображения
if (!imagecopyresampled($dest_img, $src_img,
0, 0, 0, 0, $w, $h,
$size_img[0], $size_img[1])) return false;
//В зависимости от расширения имени файла с уменьшенной копией,
// переданного в параметрах функции,
// вызываем функцию сохранения уменьшенной копии в файл
$path_parts=pathinfo($smallimage);
if ($path_parts ["extension"] == "jpg")
imagejpeg($dest_img, $smallimage);
else if ($path_parts["extension"] == "gif")
imagegif($dest_img, $smallimage);
else if ($path_parts["extension"] == "png")
imagepng($dest_img, $sma11image);
// Очищение памяти от созданных изображений
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
}
resizeimg("picture.jpg", "smoll_picture.jpg", 100, 100);
?>


В чем может быть проблема. и как ее можно решить?

PM MAIL   Вверх
Mal Hack
Дата 27.12.2006, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



aleksey_from_kg
Модератор: один топик один вопрос. 
Два. Что выдает, ошибки, вывод которых надо включить...
PM ICQ   Вверх
aleksey_from_kg
Дата 28.12.2006, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 21.10.2006

Репутация: нет
Всего: нет



Mal Hack,  
Хорошо smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.0611 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.