Изменяем размер изображения сохраняя пропорции

Август 20th, 2010 Рубрики: PHP, Вкусняшки coubertin.cz www.colvillewoodworking.com

Наконец то я наскреб время написать в блог, давно не писал а руки чешутся. Сегодня я расскажу как изменить размер изображения при этом сохранив пропорции. Все очень просто и требует лишь библиотеки GD.Итак, мы имеем изображение  example.jpg и хотим изменить его размер. Следует заметить что данный метод подходит только для JPG!

Пример №1. Изменяем изображение до нужной высоты.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
# Определяем размер изображения
$size=GetImageSize ("example.jpg");
# Создаем новое изображение
$src=ImageCreateFromJPEG ("example.jpg");
# Присваиваем переменной значение ширины
$iw=$size[0];
# Присваиваем переменной значение высоты
$ih=$size[1];
# Делим высоту изображения на 200 ( 200 это нужная нам высота уменьшенного изображения )
получая тем самым коэффициент соотношения высоты исходного изображения с высотой конечного изображения
$koe=$ih/200;
# Делим ширину на коэффициент и округляем до целого, получая тем самым ширину нового изображения
$new_w=ceil ($iw/$koe);
# Создаем пустое изображения конечного изображения
$dst=ImageCreateTrueColor ($new_w, 200);
# Этой функцией копируем изображения в другое изменяя его размер
imagecopyresampled ($dst, $src, 0, 0, 0, 0, $new_w, 200, ImageSX ($src), ImageSY ($src));
# Сохраняем полученное изображение
ImageJPEG ($dst, "example_small.jpg", 100);
?>

Пример №2. Изменяем изображение до нужной ширины.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
# Определяем размер изображения
$size=GetImageSize ("example.jpg");
# Создаем новое изображение
$src=ImageCreateFromJPEG ("example.jpg");
# Присваиваем переменной значение ширины
$iw=$size[0];
# Присваиваем переменной значение высоты
$ih=$size[1];
# Делим ширину изображения на 200 ( 200 это нужная нам ширина уменьшенного изображения )
получая тем самым коэффициент соотношения ширины исходного изображения с шириной конечного изображения
$koe=$iw/200;
# Делим высоту на коэффициент и округляем до целого, получая тем самым высоту нового изображения
$new_h=ceil ($ih/$koe);
# Создаем пустое изображения конечного изображения
$dst=ImageCreateTrueColor (200, $new_h);
# Этой функцией копируем изображения в другое изменяя его размер
ImageCopyResampled ($dst, $src, 0, 0, 0, 0, 200, $new_h, ImageSX ($src), ImageSY ($src));
# Сохраняем полученное изображение
ImageJPEG ($dst, "example_small.jpg", 100);
?>

Все довольно просто, только не следует забывать что данный метод не подходит для gif и png. Чуть позже я расскажу как изменять размер PNG изображений сохраняя пропорции, а на сегодня все =)

Теги: ,

2 комментария к “Изменяем размер изображения сохраняя пропорции”

  1. Январь 31st, 2011 at 18:15
    1

    Во втором примере вначале вместо <?ph <?php 😉

    [Ответить]

    ZekMan Reply:

    поправлю вечеом

    [Ответить]

Написать комментарий