0

アプリケーション内でWebページの画像をレンダリングしようとしています。残念ながら、Windowsフォームを利用できないため、WebKit.netなどのソリューションは、画像を抽出するためにフォームを制御する必要があるため、利用できません。

そのため、私はバークリウムのラッパーを探し始めましたが、バークリウムの鋭いものにしか出くわしませんでした。物事を難しくするためのドキュメントがないようですが、コードを見ると、下にレンダリングされているページからビットマップ(または同様のもの)を作成する方法がわかりません。それが可能かどうか誰かが知っていますか?

誰かが機能しない代替品を提供し始める前に、.NET 2.0を使用する必要があることを付け加えておく必要があります(ただし、機能するものは受け入れます!)。

4

1 に答える 1

2

最初に使用するのは少し風変わりですが、著者に電子メールを送った後、バークリウムシャープで次のように思いつくことができました. 他の人に役立つ場合に備えて、ここに投稿します。

    static void Main(string[] args)
    {                        
        BerkeliumSharp.Init(Path.GetTempPath());
        using (Context context = Context.Create())
        {
            BerkeliumSharp.Update();
            using (Window window = new Window(context))
            {
                string url = "http://www.google.com";
                window.Resize(500, 500);
                HandlePaint(window, @"m:\berkelium.png");
                window.NavigateTo(url);

                // Give the page some time to update
                DateTime now = DateTime.Now;
                while(DateTime.Now.Subtract(now).TotalSeconds < 1)
                    BerkeliumSharp.Update();                   
            }
        }
    }

次に、自動テストのソース コードに含まれている HandlePaint メソッドを使用します。また、ハードコーディングされた 1 秒の遅延を取り除くために、ページが読み込まれるまで待機する便利な手法がテストにあることも付け加えておきます。

于 2012-06-19T12:09:48.730 に答える