dポイントプレゼントキャンペーン実施中!

たまに縦長のWebページを一枚の画像として保存できるソフトを見かけるのですが、
あれはどういう仕組みなのでしょうか?
わかる方がいましたらぜひ教えてください。

A 回答 (1件)

スクロールさせてキャプチャーした画像をつないでるだけですよ。

    • good
    • 0
この回答へのお礼

返信ありがとうございます。

申し訳ないのですが、自分でいろいろ調べたら参考になりそうなサンプルがあったので、それをもとに作ってみたらできました。

どうもお騒がせしました。

Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Runtime.InteropServices

Public Class form1

Const DVASPECT_CONTENT As Integer = 1
Const DVASPECT_THUMBNAIL As Integer = 2
Const DVASPECT_ICON As Integer = 4
Const DVASPECT_DOCPRINT As Integer = 8

<DllImport("ole32.dll")> _
Public Shared Function OleDraw( _
ByVal pUnk As IntPtr, _
ByVal dwAspect As Integer, _
ByVal hdcDraw As IntPtr, _
ByRef lprcBounds As Rectangle) _
As Integer
End Function

Dim WithEvents WebBrowser1 As WebBrowser

Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.WebBrowser1 = New WebBrowser
Me.WebBrowser1.Visible = False
Me.WebBrowser1.ScrollBarsEnabled = False
Me.WebBrowser1.Navigate("http://www.yahoo.co.jp")
End Sub

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Dim Rect As Rectangle = Me.WebBrowser1.Document.Body.ScrollRectangle
Dim BodySize As New Size(Rect.Width, Rect.Height)
Dim Bitmap As Bitmap
Me.WebBrowser1.Size = BodySize
Me.WebBrowser1.Document.Body.Style = "overflow-x:hidden;overflow-y:hidden"
Bitmap = New Bitmap(BodySize.Width, BodySize.Height)
Dim Graph As Graphics = Graphics.FromImage(Bitmap)
Dim Browser As Object = Me.WebBrowser1.ActiveXInstance
Dim pUnk As IntPtr = Marshal.GetIUnknownForObject(Browser)
Dim hDc As IntPtr = Graph.GetHdc
OleDraw(pUnk, DVASPECT_CONTENT, hDc, New Rectangle(0, 0, Bitmap.Width, Bitmap.Height))
Marshal.Release(pUnk)
Graph.ReleaseHdc(hDc)
Bitmap.Save(保存ファイル名, System.Drawing.Imaging.ImageFormat.Png)
End Sub

お礼日時:2010/09/28 21:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!