栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

C#实现将网页保存成图片的网页拍照功能

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#实现将网页保存成图片的网页拍照功能

本文实例主要实现了网页照相机程序的功能。C#实现将网页保存成图片格式,简单实现网页拍照,主要是基于ActiveX 组件的网页快照类,AcitveX 必须实现 IViewObject 接口。因此读者完全可扩展此类将其用于你的C#软件项目中。在此特别感谢作者:随飞提供的代码。

主要功能代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
using System.Drawing;
using System.Windows.Forms;
namespace SnapLibrary
{
  /// 
  /// ActiveX 组件快照类,用于网页拍照,将网页保存成图片
  /// AcitveX 必须实现 IViewObject 接口
  /// 作者:随飞
  /// 
  public class Snapshot
  {
    /// 
    /// 取快照
    /// 
    /// Com 对象
    /// 图象大小
    /// 
    public Bitmap TakeSnapshot(object pUnknown, Rectangle bmpRect)
    {
      if (pUnknown == null)
 return null;
      //必须为com对象
      if (!Marshal.IsComObject(pUnknown))
 return null;
      //IViewObject 接口
      SnapLibrary.UnsafeNativeMethods.IViewObject ViewObject = null;
      IntPtr pViewObject = IntPtr.Zero;
      //内存图
      Bitmap pPicture = new Bitmap(bmpRect.Width, bmpRect.Height);
      Graphics hDrawDC = Graphics.FromImage(pPicture);
      //获取接口
      object hret = Marshal.QueryInterface(Marshal.GetIUnknownForObject(pUnknown),
 ref UnsafeNativeMethods.IID_IViewObject, out pViewObject);
      try
      {
 ViewObject = Marshal.GetTypedObjectForIUnknown(pViewObject, typeof(SnapLibrary.UnsafeNativeMethods.IViewObject)) as SnapLibrary.UnsafeNativeMethods.IViewObject;
 //调用Draw方法
 ViewObject.Draw((int)DVASPECT.DVASPECT_CONTENT,
   -1,
   IntPtr.Zero,
   null,
   IntPtr.Zero,
   hDrawDC.GetHdc(),
   new NativeMethods.COMRECT(bmpRect),
   null,
   IntPtr.Zero,
   0);
 Marshal.Release(pViewObject);
      }
      catch (Exception ex)
      {
 Console.WriteLine(ex.Message);
 throw ex;
      }
      //释放
      hDrawDC.Dispose();
      return pPicture;
    }
  }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/126350.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号