Изменение размера изображения

В этом уроке мы с вами научимся изменять размер изображений. Вначале давайте определим какая будет максимальная ширина и высота. Ширина и высота должна соответствовать ширине и высоте Вашего сайта. Допустим, что Ваш сайт 700px в ширину, для того, чтобы сайт смотрелся нормально и никуда не ехал, максимальная ширина картинки будет – 500px.

Давайте начнем. Для начала, нужно сохранить имя изображения. Для этого создаем переменную и присваиваем ей имя изображения.

$img_src = 'mypic.gif'; 

Для задания максимальных размеров, я рекомендую использовать константы.


 DEFINE ( 'max_width', 500); 
 DEFINE ( 'max_height', 400);
 

Теперь у нас есть наши максимальные размеры. Следующим шагом мы должны получить размер изображения. Это мы можем сделать, используя функцию getimagesize (). Эта функция вернет нам массив, который будет содержать исходную ширину и высоту изображения.


 $dims = getimagesize ($ img_src); 
 $old_width = $dims[0];
 $old_height = $dims[1];
 

Теперь мы должны проверить изменились ли наши размеры изображения. Если этого не произойдет, то мы просто выводим исходное изображение. (Для вывода изображения Вы можете использовать любой оператор.)


 if ($old_width <= MAX_WIDTH && $old_height <= MAX_HEIGHT) {
 return '<img src="' . $img_src . '" width="' . $old_width . '" height="' . $old_height . '">';
 }
 

Теперь нам нужно определить разницу в ширине и высоте по сравнению с исходными. Эти данные пригодятся нам для расчетов.


 $width_dif = $old_width - MAX_WIDTH;
 $height_dif = $old_height - MAX_HEIGHT;
 

Для того, чтобы определить какая разница больше, мы должны задать переменную, которая будет показывать нам наши расчеты.


 if ($height_dif > $width_dif) {
 $max_dif = 'height'; 
 }
 else {
 $max_dif = 'width'; 
 }
 

Хорошо, теперь у нас есть все данные для создания кодового блока.


 if ($max_dif == 'width') {
 $new_width = MAX_WIDTH;
 $percentage = $new_width/$old_width;
 $new_height = $old_height*$percentage;
 } 
 elseif ($max_dif == 'height') {
 $new_height = MAX_HEIGHT;
 $percentage = $new_height/$old_height;
 $new_width = $old_width*$percentage;
 }
 

Эти расчеты в основном предназначены для того, чтобы сохранять пропорции изображения. Изображение не будет изменяться по указанным фиксированным размерам, вместо этого оно будет изменено пропорционально.

Теперь давайте вставим наше изображение в наш HTML код:


 return '<img src="' . $img_src . '" width="' . $new_width . '" height="' . $new_height . '">' . '<br />';
 

На этом, пожалуй, и все.

Понравился урок? Добавьте его к себе в закладки.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *