Изменяем размер изображения сохраняя пропорции
Наконец то я наскреб время написать в блог, давно не писал а руки чешутся. Сегодня я расскажу как изменить размер изображения при этом сохранив пропорции. Все очень просто и требует лишь библиотеки 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 изображений сохраняя пропорции, а на сегодня все =)
Во втором примере вначале вместо <?ph <?php 😉
[Ответить]
ZekMan Reply:
Январь 31st, 2011 at 18:23
поправлю вечеом
[Ответить]