J'essaie de générer une image bitmap à partir d'une bordure WPF. Le tout se trouve dans une application asp.net (côté serveur bien sûr). Net 4.0.Génération de Bitmap de WPIE UIElement dans ASP.NET
Le problème est, que l'image générée est, bien, vide. Est-ce que quelqu'un a une idée pourquoi?
Voici le code.
public static byte[] Draw(int width, int height)
{
MemoryStream memoryStream
= new MemoryStream();
Thread t = new Thread(delegate()
{
System.Windows.Controls.Border border = new System.Windows.Controls.Border()
{
Background = Brushes.Red,
BorderBrush = Brushes.Green,
CornerRadius = new System.Windows.CornerRadius(5),
Width = width,
Height = height
};
border.ApplyTemplate();
RenderTargetBitmap renderTargetBitmap =
new RenderTargetBitmap(width, height, 90, 90, PixelFormats.Pbgra32);
renderTargetBitmap.Render(border);
BitmapEncoder bitmapEncoder =
new PngBitmapEncoder();
bitmapEncoder.Frames.Add(BitmapFrame.Create(renderTargetBitmap));
bitmapEncoder.Save(memoryStream);
});
t.SetApartmentState(ApartmentState.STA);
t.Start();
bool success = t.Join(5000);
if (success)
return memoryStream.ToArray();
else
throw new Exception("Fail");
}
Le résultat est tout à fait mauvais, comme je l'ai dit la chose renvoie l'image avec la bonne largeur et la hauteur, mais il est vide, donc je suppose que je ne plaisante pas la chose avec le bit de filetage.
bien, merci mon pote! –