muszę zaciemniać pewien fragment obrazu za pomocą PHP i GD, obecnie używam następujący kod:PHP/GD Gaussian Blur Effect
for ($x = $_GET['x1']; $x < $_GET['x2']; $x += $pixel)
{
for ($y = $_GET['y1']; $y < $_GET['y2']; $y += $pixel)
{
ImageFilledRectangle($image, $x, $y, $x + $pixel - 1, $y + $pixel - 1, ImageColorAt($image, $x, $y));
}
}
to w zasadzie zastępuje zaznaczony obszar z kwadratów $ piksele pikseli. Chcę osiągnąć jakieś rozmycia (Gaussian najlepiej) efekt, wiem, że mogę użyć ImageFilter() Funkcja:
ImageFilter($image, IMG_FILTER_GAUSSIAN_BLUR);
Ale to zaciera całą płótnie, moim problemem jest to, że po prostu chcę rozmycie specyficzny powierzchnia.
Rzeczywiście, jest to miłe obejście jednak chciałbym jeszcze wiedzieć, jak ręcznie stworzyć efekt rozmycia. –
Możesz sprawdzić to na wikipedia: http://en.wikipedia.org/wiki/Gaussian_blur#Implementation lub spójrz na podobne posty na StackOverflow: http://stackoverflow.com/questions/98359/fastest-gaussian-blur- implementacja, ale polecam używanie wbudowanej biblioteki. Te biblioteki używają skompilowanych algorytmów, aby przyspieszyć proces. – Scharrels
Wziąłem sugestię, którą mi podarowałeś i muszę zapętlić ImageFilter 128 na wybranym obszarze, aby go zaciemnić, może używając niestandardowej implementacji, szybciej uzyskam wynik. –