Dessiner une ombre portée
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
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