PHP/GD Effet Flou Gaussien
J'ai besoin de dissimuler une certaine zone de l'image à l'aide de PHP et GD, actuellement, je suis en utilisant le code suivant:
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));
}
}
En fait cela remplace la zone sélectionnée avec les places de $pixel pixels. Je veux accomplir une sorte de flou (gaussien de préférence) en effet, je sais que je peux utiliser le ImageFilter() fonction:
ImageFilter($image, IMG_FILTER_GAUSSIAN_BLUR);
Mais il brouille l'ensemble de la toile, mon problème est que je veux juste de flou à une zone spécifique.
OriginalL'auteur Alix Axel | 2009-08-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez copier une partie spécifique de l'image dans une nouvelle image, appliquer le flou sur la nouvelle image et copier le résultat en retour.
Un peu comme ceci:
Vous pouvez faire des recherches sur wikipedia: en.wikipedia.org/wiki/Gaussian_blur#Implementation ou regarder des postes similaires sur StackOverflow: stackoverflow.com/questions/98359/... mais je vous conseille d'utiliser une bibliothèque intégrée. Ces bibliothèques utilisent compilé des algorithmes pour accélérer le processus.
J'ai pris la suggestion que vous avez donné à moi et j'ai de la boucle ImageFilter 128 sur la zone choisie pour la dissimuler, peut-être en utilisant une mesure de mise en œuvre, je peux obtenir le résultat plus rapidement.
Sûrement vous dire pour appliquer le filtre à $image2 plutôt que $image (flou à une zone spécifique, par opposition à brouiller toutes les mais la zone spécifique)
OriginalL'auteur Scharrels
Je n'ai pas de consulter la documentation pour imagefilter et je ne sais pas si cela est impossible ou si il y a un équivalent à l'application (d'une partie) d'une image. Mais dans l'hypothèse où il n'y en a pas, pourquoi pas:
OriginalL'auteur ChristopheD