WPF对webbrowser里的网页进行截图 35
代码如下:RenderTargetBitmapreder=newRenderTargetBitmap((int)webBrowser1.Width,(int)webBro...
代码如下:
RenderTargetBitmap reder = new RenderTargetBitmap((int)webBrowser1.Width, (int)webBrowser1.Height, 96, 96, PixelFormats.Default);
reder.Render(webBrowser1);
PngBitmapEncoder png = new PngBitmapEncoder();
png.Frames.Add(BitmapFrame.Create(reder));
FileStream fs = File.Open(@"F:\tesst.png", FileMode.OpenOrCreate);
png.Save(fs);
运行结果是PNG图片没有内容,保存为txt文件里面不为空。
求大牛可以指点一二……,把截图显示到image里面就可以。
我用这个方法试着截了一个image的图,然后是空的。
所以语句有错……
但是百度关键字“WPF 截图”里面是这样写的啊,所以希望有大神可以解答下……谢谢! 展开
RenderTargetBitmap reder = new RenderTargetBitmap((int)webBrowser1.Width, (int)webBrowser1.Height, 96, 96, PixelFormats.Default);
reder.Render(webBrowser1);
PngBitmapEncoder png = new PngBitmapEncoder();
png.Frames.Add(BitmapFrame.Create(reder));
FileStream fs = File.Open(@"F:\tesst.png", FileMode.OpenOrCreate);
png.Save(fs);
运行结果是PNG图片没有内容,保存为txt文件里面不为空。
求大牛可以指点一二……,把截图显示到image里面就可以。
我用这个方法试着截了一个image的图,然后是空的。
所以语句有错……
但是百度关键字“WPF 截图”里面是这样写的啊,所以希望有大神可以解答下……谢谢! 展开
1个回答
展开全部
RenderTargetBitmap MediaElement截图空白问题
分类: WPF2012-05-10 18:03 572人阅读 评论(0) 收藏 举报
wcfimage
[html] view plaincopy
<MediaElement Name="mediaE" Margin="0,10,0,0" Source="E:\WCF\1.wmv" Width="50" Height="50" Position="0:10:5" ScrubbingEnabled="True"/>
<Image Name="imgClip" Width="50" Height="50" />
当通过RenderTargetBitmap 截图时,有时候会出现空白的问题,导致该问题的原因在于,设置了Margin、HorizontalAlignment或者VerticalAlignment,导致MediaElement离开了他应在的位置,截的图是从原来位置截取的,(例如:当Margin的值按照上面的代码设置,会导致截图的时候上面10个单位的值为空白)所以解决该问题的关键在于不改变MediaElement该在的位置即可,
截图代码如下:
[csharp] view plaincopy
RenderTargetBitmap map = new RenderTargetBitmap(100, 100, 100, 100, PixelFormats.Pbgra32);
map.Render(mediaE);
imgClip.Source = BitmapFrame.Create(map);
参考:
http://blog.csdn.net/jaychouliyu/article/details/7554649
另外可以试试下面代码:
//C#中测试通过!转成WPF应当不难
int height = webBrowser.Document.Body.ScrollRectangle.Height;
int width = webBrowser.Document.Body.ScrollRectangle.Width;
// 调节webBrowser的高度和宽度
webBrowser.Height = height;
webBrowser.Width = width;
Bitmap bitmap = new Bitmap(width, height); // 创建高度和宽度与网页相同的图片
Rectangle rectangle = new Rectangle(0, 0, width, height); // 绘图区域
webBrowser.DrawToBitmap(bitmap, rectangle); // 截图
// 保存图片对话框
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "JPEG (*.jpg)|*.jpg|PNG (*.png)|*.png";
saveFileDialog.ShowDialog();
bitmap.Save(saveFileDialog.FileName); // 保存图片
分类: WPF2012-05-10 18:03 572人阅读 评论(0) 收藏 举报
wcfimage
[html] view plaincopy
<MediaElement Name="mediaE" Margin="0,10,0,0" Source="E:\WCF\1.wmv" Width="50" Height="50" Position="0:10:5" ScrubbingEnabled="True"/>
<Image Name="imgClip" Width="50" Height="50" />
当通过RenderTargetBitmap 截图时,有时候会出现空白的问题,导致该问题的原因在于,设置了Margin、HorizontalAlignment或者VerticalAlignment,导致MediaElement离开了他应在的位置,截的图是从原来位置截取的,(例如:当Margin的值按照上面的代码设置,会导致截图的时候上面10个单位的值为空白)所以解决该问题的关键在于不改变MediaElement该在的位置即可,
截图代码如下:
[csharp] view plaincopy
RenderTargetBitmap map = new RenderTargetBitmap(100, 100, 100, 100, PixelFormats.Pbgra32);
map.Render(mediaE);
imgClip.Source = BitmapFrame.Create(map);
参考:
http://blog.csdn.net/jaychouliyu/article/details/7554649
另外可以试试下面代码:
//C#中测试通过!转成WPF应当不难
int height = webBrowser.Document.Body.ScrollRectangle.Height;
int width = webBrowser.Document.Body.ScrollRectangle.Width;
// 调节webBrowser的高度和宽度
webBrowser.Height = height;
webBrowser.Width = width;
Bitmap bitmap = new Bitmap(width, height); // 创建高度和宽度与网页相同的图片
Rectangle rectangle = new Rectangle(0, 0, width, height); // 绘图区域
webBrowser.DrawToBitmap(bitmap, rectangle); // 截图
// 保存图片对话框
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "JPEG (*.jpg)|*.jpg|PNG (*.png)|*.png";
saveFileDialog.ShowDialog();
bitmap.Save(saveFileDialog.FileName); // 保存图片
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询