У цій статті я покажу як створити деякі ефекти на фотографіях (як на Instagram) за допомогою PHP і ImageMagick.
Обробка зображень за допомогою PHP
PHP поставляється в комплекті з GD (GIF Draw / Graphics Draw). Її використовують для простих операцій з зображеннями, такі як зміна розміру, обрізка, додавання водяних знаків, створення мініатюр. На жаль, якщо ви хочете створити щось більш складне з GD не вийде. На щастя, у нас є ImageMagick!
GD vs. ImageMagick
Подивимося на прикладі ресайз зображення.
IM (скорочено від ImageMagick) має хорошу оболонку, називається Imagick - рідне розширення PHP для створення і редагування зображень за допомогою ImageMagick API. Єдиний мінус: встановлюється з PECL. який іноді може бути проблемою для віртуального хостингу.
А із застосуванням командного рядка ще простіше:
установка ImageMagick
Після завершення установки перейдіть до терміналу / командному рядку, введіть convert і натисніть Enter, якщо ви отримаєте список варіантів, а не «Невідома команда», то все відмінно! Зверніть увагу, що вам не потрібно нічого налаштовувати в PHP.
Instagraph - клас PHP
Я створив невеликий скрипт, PHP клас, щоб зробити процес фільтрації зображень якомога простішим.
Створіть новий файл з ім'ям instagraph.php і вставте наступний код.
Подивимося що виходить
Готем-фільтр призводить зображення в чорно-біле. Високий контраст зображення з блакитним відтінком.
Нагадує старі знімки Polaroid, він має яскраві кольори разом з рожевим / помаранчевим світлом від центру. За словами генерального директора Instagram, це один з найскладніших ефектів.
Ви навіть можете додати білу рамку для повного ефекту, просто додайте
Як це використовувати?
Я припускаю що ви зберегли весь код в файл instagraph.php. Тепер створіть файл з ім'ям filter.php і скопіюйте наступний код.
Якщо ви хочете застосувати тільки один фільтр, ви можете зробити це в такий спосіб:
От і все! Якщо ви хочете застосувати всі фільтри використовуйте цей код:
продуктивність
Продуктивність, безумовно, є важливою частиною в будь-якій області застосування. Застосування фільтру до зображення становить приблизно 1 секунду, ми можемо з упевненістю сказати що це дуже швидко!