問題タブ [rendertargetbitmap]

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 投票する
2 に答える
2954 参照

wpf - WPF コントロールを BitmapSource に変換する

これは一種の 2 つの部分からなる質問です。まず、このコードが機能しないのはなぜですか?

画像をディスクに書き込むと、黒い画像しか表示されません。以前にこれを行ったことがあり、問題はありませんでしたが、今は何かが私を逃れています...幅と高さ、およびバッファデータを確認しましたMemoryStream とすべてが問題ないように見えます...

これは単なるテストです。実際の目標は、Canvas ビジュアル イメージから BitmapSource を作成することです。キャンバスは、コード内の形状 (ポリラインなど) で描画されています。次に、この BitmapSource を xaml の Image に 1 秒あたり約 60 フレームの速度で渡す必要があります。モック BitmapSource を作成すると Image.Source が CachedBitmap を使用していることに気付きましたが、(黒の) ビットマップを更新するたびに BitmapImage に再バインドされます。

60fps でメモリ内に Canvas を作成し、Image.Source から CachedBitmap として表示される BitmapSource を作成する方法に関する提案はありますか?

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

c# - RenderTargetBitmapメモリリーク

RenderTargetBitmapからインスタンスを作成して画像をレンダリングするたびに、RenderTargetBitmapを使用して画像をレンダリングしようとしていますが、メモリが増加し、メモリが解放されることはありません。これがコードです。

どうすればメモリを解放できますか、そしてすべてに感謝します。

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

wpf - RenderTargetBitmap は生データをディスクに保存します

RenderTargetBitmap の高 fps ストリームがあります。それらをディスクに保存して後で処理したいのですが、それらを Png や bmp などにエンコードしたくありません。未加工のバイト バッファを保存したいのです。

それは可能ですか?

ありがとう

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

wpf - WPF:キャンバスコンテンツをビットマップの問題に描画する

Canvasから継承されたクラスDottedCanvasのカスタムコントロールがあります。これには、TextBoxから継承されたクラスTreeNodeのカスタムコントロールが含まれています。キャンバスコントロールには次のスタイルがあります。

TextBoxコントロールはUserControlにラップされ、独自のスタイルもあります。

次に、このキャンバスをビットマップに印刷しようとしています。

画像はそう見えます:

結果

Canvasにはドットがありません(スタイルは機能しました)が、TextBoxのBorderThicknessは画像上で1のままです。関数のブレークポイントPrepareTree()は、TextBox BorderThicknessプロパティがゼロに設定されていることを示します(つまり、スタイルも機能します)。画像に「新しい」バージョンのTextBoxを追加するにはどうすればよいですか?

0 投票する
0 に答える
450 参照

c# - DcRenderTargetからCompatibleRenderTargetを作成する場合の例外

描画パフォーマンスを向上させるために「WindowsAPICodePackfor.NET」で.NetDirect2DAPIを使用していますが、DcRenderTargetからCompatibleRenderTargetを作成すると、常に「Exception from HRESULT:0x88982F80」がスローされます。理由はわかりませんが、 2日間悩みました。そしてここに私のコードがあります:

var renderTarget = dcRenderTarget.CreateCompatibleRenderTarget(CompatibleRenderTargetOptions.None、new PixelFormat(Format.R8G8B8A8UNorm、AlphaMode.Straight)、new size);

「AlphaMode」を「Ignore」などの他の方法に変更すると正常に機能しますが、renderTargetを透明にできないか、描画品質が低下します。

誰かが理由を知っているか、あなたのアイデアを自由に投稿してください。

よろしく!

ありがとう、

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

c# - RenderTargetBitmapをSystem.Drawing.Imageに変換します

Excelセルに(クリップボードバッファーを介して)渡したい3DWPFビジュアルがあります。

「通常の」BMP画像では機能しますが、変換する方法がわかりませんRenderTargetBitmap

私のコードは次のようになります:

私の問題は、またはgr.DrawImageを受け入れないことです。のみ。System.Windows.Controls.ImageSystem.Windows.Media.Imaging.RenderTargetBitmapSystem.Drawing.Image

Controls.Image.Imaging.RenderTargetBitmapをに変換するにはどうすればよいですImageか、またはもっと簡単な方法はありますか?

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

c# - RenderTargetBitmap が ColumnDefinitions の幅を尊重しない

非表示の列を含む Grid のスナップショットを作成する必要があります (ColumnDefinition.Width = 0 に設定)。

画面上では問題created imageないように見えますが、すべての列が表示されています(does not respect the ColumnDefinitions)。RenderTargetBitmap が、これらの変更が存在しない別のレイヤー (ビジュアル レイヤーとレイアウト レイヤー) を見ているためです。正しい ColumnDefinitions を使用してグリッドの現実的なスナップショットを取得する機会はありますか? Rectagnel.Fill = VisualBrush を単純に使用することはできません。これは、これらの画像をサイクルで保存する必要があるためです (すべての反復 = 新しい画像)。

このスニペットのような方法を試しました

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

c# - なぜすべての座標とサイズがおかしいのですか?

このコードは次の画像を生成しました。

テスト画像

ビットマップが300x300の場合、白い長方形(0、0、400、400)がその一部しか占めないのはなぜですか テキストが中央に配置されないのは なぜですか?

グーグルの言葉すらわからない。私は知恵を求めています。

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

wpf - scrollviewerでWPFデータグリッドのスクリーンショットを撮る

表示する行が多すぎるデータグリッドのスクリーンショットを撮ろうとしています。したがって、スクロールビューアがあります。したがって、データグリッドを RenderTargetBitmap の Render メソッドに入れると、明らかにデータグリッドの表示可能な部分が取得されます。ItemsPresenter はコンテンツの「実際の」幅と高さを持つため、そのコントロールの ScrollViewer の ItemsPresenter を実際にレンダリングするときに、コンテンツのスクリーンショットを撮ることができることを読みました。

残念ながら、私の ScrollViewer には、dataGrid とは異なる Height、ActualHeight、または RenderSize.Height がありません。だから私は常にコンテンツの目に見える部分を取得します。

これを正しい方法で行う方法を知っている人はいますか?実際にはコンテンツ全体が必要です。

コード:

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

c# - RenderTargetBitmap は、ウィンドウで設定されていない場合、空のコントロールをレンダリングします (Visiblox チャート)

Visiblox チャートを画像にレンダリングして、何百ものチャートを同時に表示できるようにしようとしています。チャートはコードで生成され、表示せずにレンダリングされます。

私が直面している問題は、レンダリング後にチャートが空に見えることです。上のコントロールはチャートで、下のコントロールはコントロールに追加する前にレンダリングされたチャートです。透かしがあるため、一部のレンダリングが行われています。

グラフは、バインディングとデータ コンテキストを使用して設定されています (重要な場合に備えて)。レンダリングする前にグラフを見ると、実質的に空のように見えます。おかげで、 「 UserControl によってバインディングが取得されるのはいつですか?

そして、これは私が画像をレンダリングするために使用しているコードです:

ここに画像の説明を入力