原文:WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片
1、图片文件转换成Visual对象
private Visual CreateVisual(string imageFileName)
{
BitmapImage bmp = new BitmapImage(new Uri(imageFileName));
Image img = new Image();
img.Width = 100;
img.Source = bmp;
Border outBordre = new Border();
outBordre.BorderBrush = Brushes.White;
outBordre.BorderThickness = new Thickness(0.5);
outBordre.Child = img;
return outBordre;
}
2、Viewport3D对象转换成图片
private Image ConvertViewport3DToImage(Viewport3D vp)
{
Grid grid = new Grid();
grid.Children.Add(vp);
RenderTargetBitmap bitmap = CreateImageBrushFromVisual(grid);
Image img = new Image();
img.Source = bitmap;
img.Stretch = Stretch.None;
img.Width = vp.Width;
img.Height = vp.Height;
return img;
}
private RenderTargetBitmap CreateImageBrushFromVisual(FrameworkElement element)
{
RenderTargetBitmap bitmapImage =
new RenderTargetBitmap((int)(element.Width), (int)(element.Height), 96, 96, PixelFormats.Pbgra32);
bitmapImage.Render(element);
return bitmapImage;
}