問題タブ [drawtobitmap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
897 参照

c# - ウェブブラウザの狂気

編集:元の質問は、多くのワイルドな推測を含む長いものでした. 私はそれを残りの謎に戻しました..

私は今、一日中苦労して困惑しており、自分の問題をコミュニティに提示する必要があると思います.

Screenshot method generate black imagesという投稿に由来します。元の投稿者は、ユーザーがログオフしているときでも、WebBrowser を含む自分のプログラムのスクリーンショットを n 秒ごとに連続して撮りたいと考えています。

ユーザーがログアウトすると、画面がなくなります。したがって、画面を読み取ろうとすると失敗します。ウィンドウ ハンドルを使用すると結果はブラック ボックスになり、CopyFromScreen を使用すると GDI エラー例外が発生します。

しかし、プログラムウィンドウはまだそこにありDrawToBitmap、ユーザーがログアウトしていても使用は正常に機能します。

条件と残りの問題は次のとおりです。

  • ユーザーは、いかなる方法でも に触れたりクリックしたりしてはなりませんWebBrowser。たとえば、スクロール、クリック、ナビゲートして後続のDrawToBitmap呼び出しを行うと、空のボックスが表示されます。

  • WebBrowserそのままですがRefresh、次の DrawToBitmap 呼び出しの前に a を実行するだけで十分です。

  • タッチした後、次の操作を行って URL を再度読み込む必要があります。 webBrowser1.Url = new Uri(URLpath);

  • これを行うには、新しい URL をナビゲートするときに保存する必要があります。Navigated イベントでそれを行います。

  • WebDrawToBitmapページに<input type="text" ..> field.

  • DocumentTextこれは a で破壊することReplace("<input", "<in_put");で修復できますが、それ以上のトリックを行わないと CSS シートが失われます。

テストするには、2 つをスローButtons, a Label, a Timer, a Combobox and a WebBrowser on a Formしてコードをコピーします。ファイルパスを、セットアップと監視に適したフォルダーに変更します..:

ほとんど自由にナビゲートできるようになり、画面のスクレイピングも機能し続けます。ただし、ユーザーページやタグページなどのテキスト入力フィールドのあるページは除きます。

誰でも再現できるのだろうか..?

それとも説明??

それとも、結局「ゴーストハンティング」をしているだけで、物事は単に信頼できないのでしょうか???

最終編集:

説明を得ることができればよかったのですが、実用的な解決策を得るにはおそらく十分であるはずです.OPは、へのPrintWindow呼び出しを使用してuser32.dllすべての問題を解決するコードを見つけました。ログオフ中に機能し、Refreshingクリックした後でも機能しWebBrowser、テキスト入力フィールドを含むすべてのページをスクレイピングします. これが私のバージョンです:

これにより、境界線の有無にかかわらず、フォームまたはコントロールをキャプチャできます。

0 投票する
3 に答える
1537 参照

c# - DrawToBitmap が UserControl から黒のイメージを返す

ここに私の最初の投稿があるので、ここに行きます。

私は約 30 のコントロール (ラベル、テキスト ボックスなど) を持つ UserControl を持っています。今、私はそれの「スクリーンショット」を作りたいと思います。そこで、UserControl の「DrawToBitmap」メソッドを使用しました。

ここにいくつかのサンプルコード

このコードを実行すると、常に黒い画像が返されます。理由はわかりません。助けてください!

編集:

UserControl が WinForms UserControl であることを忘れていました

0 投票する
2 に答える
1113 参照

c# - WebBrowser.DrawToBitmap() が画像をレンダリングしない

私は奇妙な状況に陥り、その理由や解決策を見つけることができませんでした。HTML コンテンツから jpg 画像を作成するユーティリティがあります。WebBrowser.Navigate(url) および WebBrowser.DrawToBitmap() メソッドを使用しています。

このユーティリティは、サーバー上のさまざまなクライアントによって 1 年以上機能しています。数週間前までは希望通りの画像が得られたものの、今では奇妙な画像が得られます。この画像は、Navigate() メソッドに渡す URL を示しているだけです。ローカル マシン上の同じ URL から正しい画像をレンダリングできました。オブジェクトの DocumentText プロパティを確認したところ、コンテンツがあり、すべての幅と高さが問題なく、どこにもエラーは発生していません。画像だけでは意味がありません。HTML コンテンツとは関係なく、すべてのページで同じ動作をします。

この問題が発生する原因となった変更内容を知っている人はいますか? 彼らは最近 Server 2008 から 2012 にアップグレードしましたが、このレンダリングはアップグレード前に停止したと主張しています。私のコードは変更されていません。このプロジェクトは、C# と .NET 4.0 で構築されています。

ヘルプやコメントをいただければ幸いです。ベザド

0 投票する
1 に答える
763 参照

c# - MigraDoc を使用した ZedGraph から PDF への変換

私は現在、いくつかの計算を行い、pdf ファイルでグラフを出力することを目的とした C# アプリケーションに取り組んでいます。

Zedgraph ライブラリを使用してグラフを描画するので、graphPane.AddCurve(PointPairList) のようなものです。今、これらのグラフを MigraDoc パッケージ経由で pdf ファイルに出力しようとしました。

現在、Zedgraph をビットマップにマップし、それを pdf ファイルに貼り付けるスクリプトがあります。だから、このようなもの:

問題は、これにより、pdf ページにわずかにピクセル化された画像が表示されることです。そして、このグラフを非常に高品質にする必要があります。それで、品質を向上させるために変更できるものはありますか、それともそのようなことに対するアプローチ全体を変更する必要がありますか.

よろしくお願いします。