C# を使用して特定の URL の画像をキャプチャする方法は?
C# を使用して、特定の URL に基づいて Web ページの画像を自動的にキャプチャしたいと考えています。
たとえば、ページに txtUrl.Text = " http://www.some.com/index.aspx " が含まれている場合、ボタンをクリックすると、その URL の画像をキャプチャするにはどうすればよいですか?
C# を使用して特定の URL の画像をキャプチャする方法は?
C# を使用して、特定の URL に基づいて Web ページの画像を自動的にキャプチャしたいと考えています。
たとえば、ページに txtUrl.Text = " http://www.some.com/index.aspx " が含まれている場合、ボタンをクリックすると、その URL の画像をキャプチャするにはどうすればよいですか?
(WinFormsアプリケーションからではなく)ASP.NETからこれを実行したいと思います。
Webプロジェクトで、System.Windows.Formsへの参照を追加します(はい、これは悪いことです)。コードビハインドでは、System.Windows.Forms.WebBrowserタイプのオブジェクトを作成できます。
WebBrowser browser = new WebBrowser();
// this will load up a URL into the web browser:
browser.Navigate(@"http://www.stackoverflow.com");
次に、BitBlt API関数(申し訳ありませんが、便利なリンクがありません)を使用して、WebBrowserコントロールのグラフィカル表示をビットマップにコピーします(これを表示または保存できます)。この関数では、WebBrowserのHandleプロパティが渡すパラメーターの1つです。
更新:必要なことを正確に実行するコードへのリンクは次のとおりです: http ://www.developerfusion.com/code/4712/generate-an-image-of-a-web-page/
Web ページのビジュアルを意味する場合、1 つのアプローチは、IE をアプリケーションに統合し、プログラムでスクリーンショットを撮ることです。これ(統合された Web ブラウザーの場合) とこれ(C# でスクリーンショットを撮る場合) が役立つ場合があります。これはもちろん IE に依存します。
別のオプションは、 browsershots.orgで使用される shotserver および shotfactory プロジェクトを使用することです。それらはここにありますが、.NET API があるかどうかはわかりません。
C# だけでできるとは思えません。これは、C# や .NET フレームワークが HTML マークアップ レンダリング機能を提供していないためです。私の意見では、最も近い方法は、WebBrowser コントロールを使用し、そのグラフィカルな出力 (レンダリングされたページ) をキャプチャすることです。
それを行う別の方法は、あなたが望むことをするかもしれない.NETコンポーネントを探すことです。