Zabawy ze zdjęciami w PHP - imagefilter()

Zabawy ze zdjęciami w PHP - imagefilter()

Nie wiele osób zdaje sobie sprawę jakie możliwości posiada biblioteka GD, służąca do manipulacji obrazkami. Większość początkujących programistów używa jej głównie do tworzenia prostych wykresów, grafik, skalowania zdjęć, itp. Jednak to tylko urywek możliwości jakie posiada owa biblioteka.

Pokażę dzisiaj w jaki sposób można szybko i prosto tworzyć różnego efekty ze zdjęcia. Będziemy korzystać z funkcji imagefilter(), która została dołączona do PHP 5. Śmiało mogę powiedzieć, że za jej pomocą możemy osiągnąć podobne efekty jak w PhotoShop’ie, czy Gimp’ie. A więc do dzieła!

Składnia funkcji

Funkcja imagefilter() wymaga podania od nas co najmniej dwóch parametrów: uchwytu do obrazka, którym będziemy manipulować oraz nazwy filtru jaki na owym obrazu zastosujemy. Pozostałe parametry są opcjonalne.

Aby zobaczyć efekty poszczególnych filtrów będę operował na tym samym obrazku:

Fotografia pochodzi z rąk znajomego ze studiów. Można ją obejrzeć pod tym adresem.

Wszystkie filtry będziemy stosować w poniższym kodzie:

<?php
$image = imagecreatefromjpeg('nina.jpg');

//FILTR, KTÓRY CHCEMY ZASTOSOWAĆ

header('Content-type: image/jpeg');
imagejpeg($image);

Przykładowo, aby lekko rozjaśnić zdjęcie nasz plik będzie wyglądał następujaco:

<?php
$image = imagecreatefromjpeg('nina.jpg');
imagefilter($image, IMG_FILTER_BRIGHTNESS, 20);
header('Content-type: image/jpeg');
imagejpeg($image);
?>

Ale o poszczególnych filtrach trochę niżej.

Jasność

Aby rozjaśnić lub przyciemnić zdjęcie musimy zastosować filtr IMG_FILTER_BRIGHTNESS z parametrem wskazującym jak bardzo nasze zdjęcie ma się zmienić.

imagefilter($image, IMG_FILTER_BRIGHTNESS, 20);