Обрізка зображень в php

Відео: [PHP] Зображення (Урок 30)

Обрізка зображень в PHP

Відео: 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.

Поділися в соціальних мережах:

Схожі
Що таке css спрайт?Що таке css спрайт?
Як замість маркера списку поставити зображення через cssЯк замість маркера списку поставити зображення через css
Як я оптимізує картинки для блогуЯк я оптимізує картинки для блогу
Як зробити смайли в коментаряхЯк зробити смайли в коментарях
Масштабування зображень в phpМасштабування зображень в php
Сервіс по роботі з зображеннями з потужним api.Сервіс по роботі з зображеннями з потужним api.
Красива галерея з сортуванням на jquery.Красива галерея з сортуванням на jquery.
Чи варто зберігати зображення в бдЧи варто зберігати зображення в бд
Заливка текстурами в phpЗаливка текстурами в php
Об`єкт image в jаvascriptОб`єкт image в jаvascript
» » Обрізка зображень в php