Дипломник: Сазыкин Е. С. Факультет ивт




НазваниеДипломник: Сазыкин Е. С. Факультет ивт
страница5/11
Дата09.03.2013
Размер0.72 Mb.
ТипДиплом
1   2   3   4   5   6   7   8   9   10   11

2.4 Программное изменение размеров изображений



Теперь вновь вернемся к файлу .htaccess. Было сказано, что всегда будет выдаваться страница index.php, за исключением файлов изображений, путь к которым написан особым образом. Дело в том, что для удобства администратора, чтобы не делать превью (миниатюры) загружаемых фотографий, показываемых на страницах «лестницы винтовые», «лестницы маршевые», «лестничные ограждения», «навесы и козырьки», «дерево в интерьере», в файл .htaccess была внесена директива

RewriteRule ^([0-9]*)x([0-9]*)/(.*)$ image.php?width=$1&height=$2&path=$3

Она говорит, о том что если на сервер идет запрос вида:

[

Строка начинается с любого количества цифр, затем следует буква “x”, затем опять любое количество цифр, затем «/», затем любые символы. В нашем случае реальный запрос имеет вид «/150x150/путь_к файлу/название_изображения.jpg»

]

, то запрос будет переадресован на файл image.php с параметрами ?width=150&height=150&path=путь_к файлу/название_изображения.jpg.

Опишу файл image.php.

Устанавливаем маскимальный контроль ошибок



error_reporting(E_ALL);

Отдается на выход заголовок, о том что далее следует изображение

header("Content-type: image/jpeg");

Проверяю, находится ли по данному пути файл. Если да, то запускаю функцию resize_image($_GET['path'], false, $_GET['width'], $_GET['height'])

с переданными файлу параметрами. Если по указанному пути не файл, то выдается браузеру изображение по умолчанию.

if (is_file($_GET['path'])) {

resize_image($_GET['path'], false, $_GET['width'], $_GET['height']);

}

else {

include("images/iPhoto.png");

}

Рассмотрим данную функцию.

function resize_image($pathSrc, $pathOut, $maxWidth = 100, $maxHeight = 100, $imgQuality = 80)

{

Проверяется, файл ли по указанному пути:

if (!is_file($pathSrc)) {

return false;

}

Считываются размеры изображения:

$imgInfo = getimagesize($pathSrc);

$iwidth = $imgInfo[0];

$iheight = $imgInfo[1];

Определяем, какие размеры будет иметь изображение:

if ($iwidth > $maxWidth) {

$width = $maxWidth;

$height = $maxWidth * $iheight / $iwidth;

} elseif ($iheight > $maxHeight) {

$width = $maxHeight * $iwidth / $iheight;

$height = $maxHeight;

}

else {

$width = $iwidth;

$height = $iheight;

}

Создаём новое изображение из потока изображения в строке. В переменной $imSrc идентификатор этого изображения.

if ($imSrc = @imagecreatefromstring(file_get_contents($pathSrc))) {

Создаём пустое полноцветное изображение. В $imOut его идентификатор.

$imOut = imagecreatetruecolor($width, $height);

Копируем прямоугольные области с одного изображения на другое. При копировании пиксели интерполируются таким образом, чтобы сохранить максимальную четкость и яркость. Если размеры исходной области и области назначения различны, то происходит соответствующее сжатие или растяжение копируемой области.

imagecopyresampled($imOut, $imSrc, 0, 0, 0, 0, $width, $height, $iwidth, $iheight);


} else {

return false;

}

Записываем изображение на диск в формате JPEG:

imagejpeg($imOut, $pathOut, $imgQuality);


return array("in_width" => $iwidth, "in_height" => $iheight, "out_width" => $width, "out_height" => $height);

}

Таким образом, обеспечивается удобство администратора. Чтобы добавить новую фотографию на сайт, ему не надо в графическом редакторе подгонять размеры изображения под требуемые для превью. Все что требуется, это скопировать изображение на сервер, а превью будет сгенерировано автоматически при запросе. К тому же это дает экономию места на сервере.
1   2   3   4   5   6   7   8   9   10   11

Похожие:

Дипломник: Сазыкин Е. С. Факультет ивт iconГосударственное образовательное учреждение высшего профессионального образования
Факультет русской филологии и журналистики. Факультет истории и юриспруденции. Факультет татарской и сопоставительной филологии....
Дипломник: Сазыкин Е. С. Факультет ивт iconУчебное пособие по английскому языку для студентов специальности ивт очной формы обучения Березники 2003
Учебное пособие по английскому языку для студентов специальностей ивт очной формы обучения / Сост. Е. Б. Кучина, Г. Р чайникова;...
Дипломник: Сазыкин Е. С. Факультет ивт iconРасписание занятий для 5-го курса (магистратура) ивт

Дипломник: Сазыкин Е. С. Факультет ивт iconПроблемы формирования бюджета Ханты-Мансийского Автономного Округа
Дипломник: Долгушин Сергей Юрьевич Руководитель проекта: Полномочный представитель Президента РФ в Ханты-Мансийском Автономном Округе...
Дипломник: Сазыкин Е. С. Факультет ивт iconРабочая программа обсуждена на заседании кафедры ивт
Изучение принципов проектирования пользовательского интерфейса прикладных программ
Дипломник: Сазыкин Е. С. Факультет ивт iconКонтрольная работа за 1 полугодие по ивт. 11 класс
Цель: Контроль зун по организации обработки больших объемов информации; создании базы данных в ms access
Дипломник: Сазыкин Е. С. Факультет ивт iconЭкономический факультет финансовый факультет юридический факультет
Программа вступительного испытания по обществознанию для поступления в Нижегородский государственный университет им. Н. И. Лобачевского...
Дипломник: Сазыкин Е. С. Факультет ивт iconИсследование физико-химических эффектов
Предложена феноменологическая модель эффекта Шварца-Хоры в тонких диэлектрических пленках, позволяющая дать объяснение основных характеристик...
Дипломник: Сазыкин Е. С. Факультет ивт iconКонспект к открытому интегрированному уроку биологии информатики
«Динамика биологических популяций. Математическое моделирование. Биологические модели развития популяций». (11 класс). Учителя: Кузнецов...
Дипломник: Сазыкин Е. С. Факультет ивт iconНоу впо «Международный институт рынка» Факультет лингвистики Научно-практическая конференция учащихся
Члены жюри: ст преподаватель Царфина А. А., ассистент Пилосян К. К., Петрова И. (3 курс, факультет лингвистики), Грешнова Д. (3 курс,...
Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница