una imagen desenfocar como c# wpf image blur

c# - como desenfocar una imagen en photoshop



Desenfoque gaussiano lleva a un marco blanco alrededor de la imagen (2)

Estoy aplicando un efecto de desenfoque a una imagen en WPF así:

<Image ClipToBounds="True"> <Image.Effect> <BlurEffect Radius="100" KernelType="Gaussian" RenderingBias="Performance" /> </Image.Effect> </Image>

Como puede ver, el radio es grande, porque la imagen es grande y necesito que esté muy borrosa. Sin embargo, para un radio tan grande, obtengo un marco claro alrededor de mi imagen como se ve en la imagen adjunta. ¿Cómo puedo suprimir esto?

En caso de que se esté preguntando: el resultado es el mismo, no importa el RenderingBias . Un borde también se produce en modo de calidad.


Antes de desenfocar, puede rellenar la imagen utilizando los píxeles del borde de la imagen. Al hacer esto, puede asegurarse de que los píxeles borrosos alrededor del borde se difuminarán utilizando píxeles de color similar y el borde blanquecino desaparecerá. Por supuesto, después de desenfocar, recorta la imagen a su tamaño original.


Lo que está sucediendo es el resultado de un desenfoque junto con el ClipToBounds. Ya que estás usando un desenfoque gaussiano, los bordes se mezclarán naturalmente con el fondo (blanco).

La aplicación de ClipToBounds básicamente se corta donde de lo contrario se habría mezclado con el blanco, por lo que se obtiene un marco blanco.

A menos que esté dispuesto a recortar la imagen aún más, desafortunadamente, así es como funciona el desenfoque.