Обрізка зображень в php
Відео: [PHP] Зображення (Урок 30)
Відео: PHP, JQuery - Image Cropping Tool (Like Facebook, Google+, Twitter) - Part 4
Часто доводиться приймати якісь зображення від користувачів на сайті, наприклад, ті ж аватарки. Але у будь-якого сайту є верстка, яка визначає розмір тих чи інших зображень. І виходи за певні межі розмірів сильно псують всю верстку. Тому тут можна або стиснути зображення, зробивши його більш дрібним, або обрізати. Давайте з Вами розберемо обрізку зображень в PHP.
Відразу наводжу код, який я написав для обрізання зображення в PHP:
Відео: Resizing Images In PHP
lt ;?php
/ *
$ X_o і $ y_o - координати лівого верхнього кута вихідного зображення на вихідному
$ W_o і h_o - ширина і висота вихідного зображення
* /
function crop($ image, $ x_o, $ y_o, $ w_o, $ h_o){
if(($ x_o lt;0)||($ y_o lt;0)||($ w_o lt;0)||($ h_o lt;0)){
echo "Некоректні вхідні параметри"-
returnfalse-
}
list($ w_i, $ h_i, $ type)= getimagesize($ image) -// Отримуємо розміри і тип зображення (число)
$ types = array("","Gif","Jpeg","Png") -// Масив з типами зображень
$ ext = $ types[$ type] -// Знаючи "числовий" тип зображення, дізнаємося назву типу
if($ ext){
$ func =`Imagecreatefrom`.$ ext-// Отримуємо назва функції, що відповідає типу, для створення зображення
$ img_i = $ func($ image) -// Створюємо дескриптор для роботи з вихідним зображенням
}else{
echo `Некоректне зображення`-// Виводимо помилку, якщо формат зображення неприпустимий
returnfalse-
}
if($ x_o + $ w_o gt; $ w_i) $ w_o = $ w_i - $ x_o-// Якщо ширина вихідного зображення більше вихідного (з урахуванням x_o), то зменшуємо її
if($ y_o + $ h_o gt; $ h_i) $ h_o = $ h_i - $ y_o-// Якщо висота вихідного зображення більше вихідного (з урахуванням y_o), то зменшуємо її
$ img_o = imagecreatetruecolor($ w_o, $ h_o) -// Створюємо дескриптор для вихідного зображення
imagecopy($ img_o, $ img_i,0,0, $ x_o, $ y_o, $ w_o, $ h_o) -// Переносимо частина зображення з вихідного в вихідний
$ func =`Image`.$ ext-// Отримуємо функція для збереження результату
return $ func($ img_o, $ image) -// Зберігаємо зображення в той же файл, що і вихідне, повертаючи результат цієї операції
}
crop("Image.jpg",100,100,200,50) -// Викликаємо функцію
?gt;
Я постарався ретельно прокоментувати код, тому, думаю, що все з ним зрозуміло. Звичайно, в CSS є можливість чітко задати розміри зображення, але Ви повинні розуміти, що нерозумно зображення 1600x1200 виводити з розміром 160x120, так як сам файл буде завантажуватися дуже довго, тому обрізання зображень в PHP може Вам знадобитися. До того ж, якщо Вам потрібно не просто якась ширина, але і висота, наприклад, 150x150, то через CSS можна сильно спотворити зображення, оскільки пропорції у нього можуть бути інші. Тому і тут нам стане в нагоді обрізка. А в одній з наступних статей ми розберемо масштабування зображень в PHP.
- Resize me!
- Як замість маркера списку поставити зображення через css
- Як я оптимізує картинки для блогу
- Як зробити попередній перегляд зображень на jаvascript.
- Як зробити смайли в коментарях
- Що таке css спрайт?
- Як зробити зображення адаптивними?
- Масштабування зображень в php
- Завантаження зображень з файлу в php
- Чи варто зберігати зображення в бд
- Заливка текстурами в php
- Png в ie6
- Сервіс по роботі з зображеннями з потужним api.
- Стиснення jpeg в linux
- Красива галерея з сортуванням на jquery.
- Скрипт галереї + слайд-шоу на jаvascript
- Оптимізація зображень linux
- Висновок всіх картинок з папки на php
- Об`єкт image в jаvascript
- Проста галерея на php
- Створення зображень в php