Question

Je souhaite ajouter une ombre portée à un fichier image. Quelle est la meilleure façon de faire ça? J'ai pensé créer un contrôle d'image WPF et ajouter un effet bitmap. Mais comment puis-je enregistrer le résultat dans un fichier?

Merci, Eric

Était-ce utile?

La solution

Vous pouvez utiliser RenderTargetBitmap et un encodeur pour ce faire. Le codeur peut être Png, Jpeg, etc. Le code ci-dessous imgControl représente votre contrôle d’image. Mais comme il s’agit d’un effet bitmap, vous devrez peut-être placer cette image dans une grille et donner l’équivalent de marge appropriée à l’ombre portée, puis utilisez imgControl à la place de la grille dans le code ci-dessous.

double Height = imgControl.ActualHeight;
double Width = imgControl.ActualWidth;

RenderTargetBitmap bmp = new RenderTargetBitmap((int)Width, (int)Height, 
                                                96, 96, PixelFormats.Pbgra32);
bmp.Render(imgControl);

BitmapEncoder encoder = new JpegBitmapEncoder();

encoder.Frames.Add(BitmapFrame.Create(bmp));

using (Stream stream = File.Create("Yourfile.jpeg"))
{
    encoder.Save(stream);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top