問題タブ [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 投票する
1 に答える
1707 参照

wpf - ビジュアル ブラシをフリーズしますか? またはより良いアイデアはありますか?

UI 用のサム ピクチャのブランチを作成したいのですが、次のようにしてみました。

「vbox」は私の UIElement です。これはバックグラウンド スレッドで作成され、メイン UI スレッドで表示するにはビットマップにレンダリングする必要があります。ビットマップへのレンダリングが終了した後は、どこでも「vbox」を使用しません。

これらのコードは機能しましたが、親指の画像のサイズを拡大すると見栄えが悪く、満足できないことがわかりました。

ベクター グラフィックのようなものを使用できるといいので、次のようにしてみました。

もちろん、Null 以外の値が割り当てられたビジュアル プロパティを使用してビジュアル ブラシをフリーズできなかったため、これは機能しませんでした。

誰でも私を助けることができますか?どうもありがとうございました。

乾杯

アレックス

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

wpf - RenderTargetBitmap から WriteableBitmap にビットブリットする方法は?

RenderTargetBitmap に多数のビジュアルをレンダリングしています。それぞれが独自の Rect でレンダリングされます。私がやりたいことは、RenderTargetBitmap インスタンスからレンダリングされたこれらの Rect 領域の 1 つを WriteableBitmap の同じ領域にコピーすることです...高速コピー rect ピクセルまたはスムス。そのように。

では、rect を RenderTargetBitmap から WriteableBitmap にすばやくコピーする方法はありますか?

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

wpf - 2つのRenderTargetBitmapインスタンスをマージする方法は?

ねえ、みんな。同じサイズの2つのRenderTargetBitmapを1つにマージする必要があります。どうすればいいですか?

ありがとう。

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

performance - RenderTargetBitmapハードウェアアクセラレーションアナログ

.net 3.5 sp1にRenderTargetBitmapハードウェアアクセラレーションアナログはありますか?

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

wpf - WPFRenderTargetBitmapTextRenderModeをGreyScaleにダウンスケーリング

RenderTargetBitmapは、RichtextBoxのTextRenderingModeからGreyScaleへのダウングレードを削除します。したがって、キャプチャされたPNGは品質が低く、WPFコントロールと一致しません。

WINDOWS ALT + PRINT SCREENを使用すると、テキストが完全にキャプチャされます。

では、テキストコントロールをALT +PRINTSCREENと同じ品質にレンダリングするにはどうすればよいですか。

どんなアドバイスも真剣にいただければ幸いです

ではごきげんよう

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

wpf - WPF のより効率的な Render() Visual/Control をビットマップに

ビジュアルをビットマップにレンダリングするより効率的な方法はありますか? UI 要素でシェーダー効果を使用しようとしていますが、結果をピクセルごとにコードで変更したいと考えています。今、私は次のようなものを使用しています:

RenderTargetBitmap で使用される遅いレンダリングを使用せずに、後処理されたボタンのこれらのピクセルを配列に取得する方法はありますか?

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

c# - RenderTargetBitmap と DPI

RenderTargetBitmapの DPI パラメータが、使用されているように使用される理由がわかりません。次のように、DPI に基づいて画像サイズを調整することで、非標準の DPI 設定を処理するコードをよく見かけます。

例:

http://blogs.msdn.com/b/jaimer/archive/2009/07/03/rendertargetbitmap-tips.aspx ( web.archive.org経由)

ContentControl + RenderTargetBitmap + 空の画像

http://social.msdn.microsoft.com/forums/en-US/wpf/thread/984da366-33d3-4fd3-b4bd-4782971785f8/

また、dpi が 96 または次のように異なる値にハードコードされているように見える場合もあります。

例:

http://www.i-programmer.info/programming/wpf-workings/538-rendertargetbitmap-visual-vector-to-bitmap.html

http://www.ericsink.com/wpf3d/3_Bitmap.html

http://dedjo.blogspot.com/2008/05/performance-appliance-of.html

チェックボックス (Aero テーマ) を RenderTargetBitmap にレンダリングする方法は?

また

例:

http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.rendertargetbitmap.aspx

いつ一方と他方を行いますか?

後でアプリ内のコントロールと同じサイズで画像を表示したい場合は、(最初の例のように) ビットマップのサイズを常に調整する必要があると言うのは正しいでしょうか?

ファイルに保存するときは、おそらく 96 の固定 dpi を使用する必要があります。または、別の dpi を使用している場合は、幅と高さを調整しないでください。

コントロールの画像を固定サイズのファイルに保存したいとします。それでもdpiを設定するか、デフォルトの96を使用しますか?

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

wpf - WPF「レイジー」VisualBrush

現在、「Lazy」VisualBrush のようなものを実装しようとしています。誰かがその方法を知っていますか? 意味: VisualBrush のように動作しますが、Visual のすべての変更で更新されるのではなく、最大で 1 秒に 1 回 (または何でも) 更新されるもの。

なぜ私がこれを行っているのか、そして私がすでに試したことについて、いくつかの背景を説明する必要があります:)

問題: 現在の私の仕事は、かなり大きな WPF アプリケーションのパフォーマンスを改善することです。主なパフォーマンスの問題 (とにかく UI レベルで) を、アプリケーションで使用されているいくつかのビジュアル ブラシに突き止めました。アプリケーションは、いくつかのかなり複雑な UserControls を含む「デスクトップ」領域と、デスクトップの縮小バージョンを含むナビゲーション領域で構成されます。ナビゲーション エリアでは、ビジュアル ブラシを使用して作業を完了しています。デスクトップ項目が多かれ少なかれ静的である限り、すべて問題ありません。ただし、要素が頻繁に変更される場合 (たとえば、アニメーションが含まれているため)、VisualBrushes は暴走します。アニメーションのフレームレートとともに更新されます。フレームレートを下げることはもちろん役に立ちますが、この問題に対するより一般的な解決策を探しています。「ソース」でありながら コントロールは、アニメーションの影響を受ける小さな領域のみをレンダリングします。ビジュアル ブラシ コンテナが完全にレンダリングされると、アプリケーションのパフォーマンスが大幅に低下します。代わりに BitmapCacheBrush を使用しようとしました。残念ながら役に立ちません。アニメーションはコントロール内にあります。したがって、とにかくブラシをリフレッシュする必要があります。

考えられる解決策: VisualBrush のように動作するコントロールを作成しました。(VisualBrush のように) ビジュアルが必要ですが、DiapatcherTimer と RenderTargetBitmap を使用してジョブを実行しています。現在、コントロールの LayoutUpdated イベントをサブスクライブしており、変更されるたびに「レンダリング」がスケジュールされます (RenderTargetBitmap を使用)。その後、実際のレンダリングは DispatcherTimer によってトリガーされます。このようにして、コントロールは DispatcherTimer の頻度で最大で再描画されます。

コードは次のとおりです。

これはこれまでのところかなりうまく機能しています。唯一の問題はトリガーです。LayoutUpdated を使用すると、ビジュアル自体がまったく変更されていなくても、レンダリングが常にトリガーされます (おそらく、アプリケーションの他の部分のアニメーションなどのため)。LayoutUpdated は頻繁に発生します。実際のところ、トリガーをスキップして、トリガーなしでタイマーを使用してコントロールを更新するだけで済みます。それは問題ではありません。また、Visual で OnRender をオーバーライドし、カスタム イベントを発生させて更新をトリガーしようとしました。VisualTree の奥深くで何かが変更されたときに OnRender が呼び出されないため、どちらも機能しません。これが今の私のベストショットです。元の VisualBrush ソリューションよりもはるかにうまく機能しています (少なくともパフォーマンスの観点から)。しかし、私はまださらに良い解決策を探しています。

a) nessasarry の場合にのみ更新をトリガーする方法、または b) まったく異なるアプローチで仕事を完了する方法を知っている人はいますか?

ありがとう!!!

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

wpf - オフスクリーンバッファにレンダリングするときのWPF texboxフォーカス

RenderTargetBitmap を使用してテキスト ボックスをオフスクリーン バッファーにレンダリングしています。このテキスト ボックスにテキストを入力したいのですが、テキスト ボックスのフォーカスを設定できません (Focus() を使用しても効果がありません。おそらくキャンバスが実際のオブジェクトに接続されていないためです)。 1 キーボード入力がキャプチャされない 2. TextBox テキストと CaretIndex = index を使用してテキストを手動で設定しても、フォーカスがないためにキャレットが取得されません。どういうわけかこの焦点を合わせる方法はありますか?そうでない場合は、少なくともフォーカスがなくてもキャレットを表示したいのですが、これを行う方法がわかりません。

0 投票する
4 に答える
18683 参照

c# - XPSファイルを(ぼやけた低解像度ではなく)高品質の画像に変換するにはどうすればよいですか?

XPSをWPFで変換しようとしています。

アイデアは、これらの画像にSilverlight 4をロードできるということです。このために、次のコードを使用しています。

このコードは、XPSドキュメントを変換するプロジェクトhttp://xpsreader.codeplex.com/から取得されます。よく働く!しかし、問題は、画像が低解像度でぼやけていることです。私はRenderTargetBitmapを調べて見つけ、このページで見つけました:http: //www.codeproject.com/Questions/213737/Render-target-bitmap-quality-issues

ここでの問題は、ハードウェアRenderTargetBitmapレンダリングを使用していないことです。

1つの解決策は、DirectXとWPFを使用してこれを行うことですが、それを行う正しい方法を示す明確な例は見つかりませんでした。

提案に感謝します。前もって感謝します。

更新:XPSドキュメントを添付しました。画像を変換しようとしてい ます。test.xpsをダウンロードしてください。