最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實現(xiàn)將網(wǎng)頁保存成圖片的網(wǎng)頁拍照功能

 更新時間:2014年07月30日 16:55:33   投稿:shichen2014  
這篇文章主要介紹了C#實現(xiàn)將網(wǎng)頁保存成圖片的網(wǎng)頁拍照功能,很實用的一個功能,需要的朋友可以參考下

本文實例主要實現(xiàn)了網(wǎng)頁照相機程序的功能。C#實現(xiàn)將網(wǎng)頁保存成圖片格式,簡單實現(xiàn)網(wǎng)頁拍照,主要是基于ActiveX 組件的網(wǎng)頁快照類,AcitveX 必須實現(xiàn) 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
{
  /// <summary>
  /// ActiveX 組件快照類,用于網(wǎng)頁拍照,將網(wǎng)頁保存成圖片
  /// AcitveX 必須實現(xiàn) IViewObject 接口
  /// 作者:隨飛
  /// </summary>
  public class Snapshot
  {
    /// <summary>
    /// 取快照
    /// </summary>
    /// <param name="pUnknown">Com 對象</param>
    /// <param name="bmpRect">圖象大小</param>
    /// <returns></returns>
    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;
      //內(nèi)存圖
      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;
        //調(diào)用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;
    }
  }
}

相關(guān)文章

  • c#索引器詳解示例

    c#索引器詳解示例

    索引器是一種特殊的類成員,它能夠讓對象以類似數(shù)組的方式來存取,使程序看起來更為直觀,更容易編寫。
    2014-04-04
  • 關(guān)于WPF異步MVVM等待窗體的介紹

    關(guān)于WPF異步MVVM等待窗體的介紹

    本篇文章小編將為大家介紹,關(guān)于WPF異步MVVM等待窗體的介紹,需要的朋友參考下
    2013-04-04
  • C#構(gòu)建分頁應(yīng)用的方法分析

    C#構(gòu)建分頁應(yīng)用的方法分析

    這篇文章主要介紹了C#構(gòu)建分頁應(yīng)用的方法,結(jié)合實例形式分析了C#創(chuàng)建分頁功能的具體步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-01-01
  • C#中如何獲取文件圖標

    C#中如何獲取文件圖標

    這篇文章主要介紹了C#中如何獲取文件圖標的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • C#中通過API實現(xiàn)的打印類 實例代碼

    C#中通過API實現(xiàn)的打印類 實例代碼

    這篇文章介紹了,C#中通過API實現(xiàn)的打印類 實例代碼,有需要的朋友可以參考一下
    2013-08-08
  • C# using()的使用方法

    C# using()的使用方法

    本文主要介紹了C# using()的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • C#中的事件介紹

    C#中的事件介紹

    這篇文章主要介紹了C#中的事件介紹,本文對C#事件的語法、定義方法、調(diào)用方法等做了講解,需要的朋友可以參考下
    2015-01-01
  • C#中的CheckBox控件詳解與應(yīng)用示例

    C#中的CheckBox控件詳解與應(yīng)用示例

    在WPF(Windows Presentation Foundation)應(yīng)用中,C#中的CheckBox控件是一種常用的用戶界面元素,允許用戶從多個選項中選擇一個或多個選項,本文將詳細介紹CheckBox控件的功能、使用方法以及在應(yīng)用程序中的具體應(yīng)用示例,需要的朋友可以參考下
    2024-04-04
  • C#實現(xiàn)連接電子秤串口自動稱重

    C#實現(xiàn)連接電子秤串口自動稱重

    這篇文章介紹了C#實現(xiàn)連接電子秤串口自動稱重的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • WPF實現(xiàn)3D立方體波浪墻效果

    WPF實現(xiàn)3D立方體波浪墻效果

    這篇文章主要為大家詳細介紹了WPF實現(xiàn)3D立方體波浪墻效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08

最新評論

泸水县| 松滋市| 霍林郭勒市| 屏边| 准格尔旗| 昌乐县| 武清区| 玛纳斯县| 娄底市| 固安县| 和田市| 鄄城县| 双流县| 咸阳市| 舞钢市| 云梦县| 浠水县| 衡山县| 鲁甸县| 涟源市| 保靖县| 新密市| 淄博市| 郧西县| 台前县| 黄浦区| 遂昌县| 乳山市| 嘉兴市| 中西区| 大姚县| 隆回县| 澎湖县| 东海县| 轮台县| 大余县| 年辖:市辖区| 瓦房店市| 普兰县| 墨江| 阿鲁科尔沁旗|