Save+as+Image+using+DrawingImage()+in+WPF
2011-10-12 18:06
375 查看
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using Amwell.Gps.MapControl.Interface;
using Amwell.Gps.MapControl.General;
using System.Security.Permissions;
using System.IO;
// Creates thumbnail image form the webbrowser control in wpf
// Or Thumbnail of web pages image created can be easily loaded in any
// image control..
public string GetThumbnailImage(WebBrowser CurrentBrowser,string filepath)
{
Guid guid = Guid.NewGuid();
//string ThumbnailPath = @"E:\" + guid.ToString() + ".png";
string ThumbnailPath = filepath + ".png";
Image imgScreen = new Image();
imgScreen.Width = CurrentBrowser.ActualWidth;
imgScreen.Height = CurrentBrowser.ActualHeight;
imgScreen.Source = new DrawingImage(VisualTreeHelper.GetDrawing(CurrentBrowser));
FileStream stream = new FileStream(ThumbnailPath, FileMode.Create);
DrawingVisual vis = new DrawingVisual();
DrawingContext cont = vis.RenderOpen();
cont.DrawImage(imgScreen.Source, new Rect(new Size(CurrentBrowser.ActualWidth, CurrentBrowser.ActualHeight)));
cont.Close();
RenderTargetBitmap rtb = new RenderTargetBitmap((int)imgScreen.Width,
(int)imgScreen.Height, 96d, 96d, PixelFormats.Default);
rtb.Render(vis);
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));
encoder.Save(stream);
stream.Close();
return ThumbnailPath;
}
public void SaveCurrentMapToPicture()
{
Microsoft.Win32.SaveFileDialog dialogOpenFile = new Microsoft.Win32.SaveFileDialog();
dialogOpenFile.DefaultExt = "png";//默认扩展名
dialogOpenFile.AddExtension = true;//是否自动添加扩展名
dialogOpenFile.Filter = "*.png|.png";
dialogOpenFile.OverwritePrompt = true;//文件已存在是否提示覆盖
dialogOpenFile.FileName = "文件名";//默认文件名
dialogOpenFile.CheckPathExists = true;//提示输入的文件名无效
dialogOpenFile.Title = "保存当前地图";
//显示对话框
bool? b = dialogOpenFile.ShowDialog();
if (b == true)//点击保存
{
GetThumbnailImage(map, dialogOpenFile.FileName);
}
}
copy from http://nethelp.wikidot.com/save-as-image-using-drawingimage-in-wpf
thanks
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using Amwell.Gps.MapControl.Interface;
using Amwell.Gps.MapControl.General;
using System.Security.Permissions;
using System.IO;
// Creates thumbnail image form the webbrowser control in wpf
// Or Thumbnail of web pages image created can be easily loaded in any
// image control..
public string GetThumbnailImage(WebBrowser CurrentBrowser,string filepath)
{
Guid guid = Guid.NewGuid();
//string ThumbnailPath = @"E:\" + guid.ToString() + ".png";
string ThumbnailPath = filepath + ".png";
Image imgScreen = new Image();
imgScreen.Width = CurrentBrowser.ActualWidth;
imgScreen.Height = CurrentBrowser.ActualHeight;
imgScreen.Source = new DrawingImage(VisualTreeHelper.GetDrawing(CurrentBrowser));
FileStream stream = new FileStream(ThumbnailPath, FileMode.Create);
DrawingVisual vis = new DrawingVisual();
DrawingContext cont = vis.RenderOpen();
cont.DrawImage(imgScreen.Source, new Rect(new Size(CurrentBrowser.ActualWidth, CurrentBrowser.ActualHeight)));
cont.Close();
RenderTargetBitmap rtb = new RenderTargetBitmap((int)imgScreen.Width,
(int)imgScreen.Height, 96d, 96d, PixelFormats.Default);
rtb.Render(vis);
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));
encoder.Save(stream);
stream.Close();
return ThumbnailPath;
}
public void SaveCurrentMapToPicture()
{
Microsoft.Win32.SaveFileDialog dialogOpenFile = new Microsoft.Win32.SaveFileDialog();
dialogOpenFile.DefaultExt = "png";//默认扩展名
dialogOpenFile.AddExtension = true;//是否自动添加扩展名
dialogOpenFile.Filter = "*.png|.png";
dialogOpenFile.OverwritePrompt = true;//文件已存在是否提示覆盖
dialogOpenFile.FileName = "文件名";//默认文件名
dialogOpenFile.CheckPathExists = true;//提示输入的文件名无效
dialogOpenFile.Title = "保存当前地图";
//显示对话框
bool? b = dialogOpenFile.ShowDialog();
if (b == true)//点击保存
{
GetThumbnailImage(map, dialogOpenFile.FileName);
}
}
copy from http://nethelp.wikidot.com/save-as-image-using-drawingimage-in-wpf
thanks
相关文章推荐
- Speeding up image loading in WPF using thumbnails
- Save an userform as an image in EXCEL
- Save an userform as an image in EXCEL
- FFMPEG -- Save streaming data as image in iOS
- Bootstrap3 - Using glyphicon as background image in CSS
- System.Drawing.Image.Save, A generic error occurred in GDI+.
- large scale image retrieval --- using the cnn codes as feature
- BilinearGradientBrushExtension, custom brush in WPF using MarkupExtension instead
- [Angular] Show a loading indicator in Angular using *ngIf/else, the as keyword and the async pipe
- Image Transformation in WPF输入日志标题
- [WPF系列]- Style - Specify width/height as resource in WPF
- System.Drawing.Image data to System.Windows.Media.ImageSource (WPF)
- Purging registered application names in the current AutoCAD drawing using .NET
- SaveAs in Excel 2007-2010
- An Inline Function is As Fast As a Macro(《Using the GNU Compiler Collection (GCC)》)
- Save a 32-bit Bitmap as 1-bit .bmp file in C#
- Save image in SQL Server (delphi)
- Rendering ink and image to a bitmap using WPF
- Applications using Launch Screen Files and targetting iOS 7.1 and earlier need to also include a Launch Image in an Asset Catalog.
- WPF中找不到Image或者Image不是Drawing系列