Siéntete en la libertad de compartir nuestra web y códigos en tus redes, necesitamos tu ayuda para aumentar esta comunidad.
Solución:
Después de encontrarme con el mismo problema, apliqué el mismo filtro varias veces, y cada vez al recurso resultante de la llamada “imagefilter” anterior. Obtuve el efecto ‘más borroso’ que estabas buscando.
p.ej:
for ($x=1; $x<=15; $x++)
imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR);
Puedes probar la convolución:
$gaussian = array(array(1.0, 2.0, 1.0), array(2.0, 4.0, 2.0), array(1.0, 2.0, 1.0));
imageconvolution($image, $gaussian, 16, 0);
$gaussian
es una matriz, entonces matemáticamente es
[[1, 2, 1],
[2, 4, 2],
[1, 2, 1]]
puede encontrar otros filtros de convolución en: http://aishack.in/tutorials/image-convolution-examples/
imageconvolution( , , , );
así que del código de arriba 1+2+1+2+4+2+1+2+1 = 16
la suma de la matriz. http://www.php.net/manual/en/function.imageconvolution.php#97921 es un buen truco para obtener la suma del divisor.
consulte http://php.net/manual/en/function.imageconvolution.php para obtener más información sobre esta función.
el buen desenfoque a la moda es (1,2,1),(2,1,2),(1,2,1)
EDITAR:
como se indica a continuación, puede ejecutar cualquier filtro más de una vez en la salida resultante para mejorar también el efecto.
Tengo muy buenos resultados con el siguiente código basado en esta solución:
for ($i = 0; $i < 25; $i++)
if ($i % 10 == 0) //each 10th time apply 'IMG_FILTER_SMOOTH' with 'level of smoothness' set to -7
imagefilter($tmp_dst_image, IMG_FILTER_SMOOTH, -7);
imagefilter($tmp_dst_image, IMG_FILTER_GAUSSIAN_BLUR);
Cuando se aplica suave después de varios desenfoques, ofrece un efecto de desenfoque muy bueno. Puedes experimentar con el siguiente número en el código: 25, 10, -7
.
Ver también: Cómo medir la velocidad del código escrito en PHP
Comentarios y valoraciones del tutorial
Si conservas algún titubeo y forma de progresar nuestro división eres capaz de ejecutar una explicación y con mucho placer lo ojearemos.