問題タブ [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 に答える
396 参照

wpf - 高解像度の画像でWPF FormattedTextがランダムに消える

寸法が 25.5"x11" (レター ページの 3 倍) の 600 DPI の「三つ折り」画像を作成する必要があります。そのために、DrawingVisual、DrawingContext、および RenderTargetBitmap クラスを通じて WPF Imaging を使用しています。

たとえば、400 DPI 以下の低解像度で画像を生成すると、すべてのテキストが期待どおりに正しい位置に表示されます。ただし、画像の解像度を 500 DPI レベル以上に上げると、画像の右端に配置された特定のテキストが単純に消え、他の相対的に配置されたテキスト/図形は完全に印刷されます。それについての最もクレイジーな部分は、DPI を変更しようとすると、異なるテキストが表示/非表示になることです。あるテスト ケースでは、600 DPI では描画された FormattedTexts の 1 つのセットが欠落し、650 DPI では描画された FormattedTexts ののセットが欠落し、700 DPI ではすべて正常に印刷されます。

以下のコード スニペットで問題を再現しました。そのまま (600 DPI) 実行すると、非常に大きな白い画像が表示されます。Dpi 定数を 400 以下に変更すると、テキストが問題なく印刷されます。

DrawingVisual クラス (VisualBitmapScalingMode、VisualTextRenderingMode、VisualEdgeMode など) 内の多くのノブを回してみましたが、役に立たなかったことに注意してください。これらの設定に関する私の調査のほとんどは、テキストが消えるのではなく、「あいまいな」テキストを修正するのに役立つ設定であることがわかりました。また、DrawingVisual または DrawingContext のガイドライン/スナップ設定のいずれについてもうまくいきませんでした。

この問題は Win7 と Win2008R2 の両方で再現されており、アプリケーションは .NET 4.5 を実行していることに注意してください。

何か案は?

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

c# - 可視領域の WPF スナップショット ScrollViewer

WPF でスナップショットを作成する方法を知っています。

しかし今、幅600pxのScrollViewerと1000pxのコンテンツがあります。このコードを使用し、Horizo​​ntalOffset が 0 の場合 (つまり、まったくスクロールしていない場合)、すべて問題なく、ScrollViewer-Control の画像が正常に表示されます。

ただし、ScrollView をスクロールして、同じ方法でスナップショットを作成すると。スナップショットはすべてめちゃくちゃです。

スクロールビューの「0 から 600」領域でできるように、スクロールビュー コンテンツの「400 から 1000」領域のスナップショットを作成するにはどうすればよいですか?

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

c# - Windows Phone 8.1 で IBuffer をバイト配列に変換する方法

Windows Phone 8.1 用のアプリケーションを作成しています。

UIElement を画像ファイルとして保存する必要があります (JPG または PNG が望ましいです)。これを行うために RenderTargetBitmap クラスを使用しています。UIElement で RenderAsync メソッドを呼び出した後、RenderTargetBitmap の GetPixelsAsync() メソッドの結果を含む IBuffer を作成します。

ここで、メソッド ToArray() を呼び出して IBuffer をバイト配列に変換し、BitmapEncoder などを使用して画像を保存する必要がありますが、Windows Phone 8.1 では IBuffer 用の ToArray() メソッドがないようですが、Windows では8.1 が存在します。

この問題を解決するにはどうすればよいですか?

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

c# - プログラムで作成された UIElement を画像ファイルに保存する方法はありますか?

Windows Phone 8.1 (C#) アプリケーションの JPG/PNG/BMP イメージでプログラムによって作成された UIElement を保存しようとしています。

メソッド RenderAsync() を使用してクラス RenderTargetBitmap を使用していますが、XAML コードで作成された UI 要素でのみ機能します。C# で直接作成された UI 要素で使用すると、「System.ArgumentException (値が期待される範囲内にありません。)」という例外が発生します。

私は何か間違ったことをしていますか、それともこのクラスはプログラムで作成された UIElement(s) のレンダリングを許可していませんか? Windows Phone 8.1 でこれを行う方法はありますか? ありがとうございました!

私が使用するコードは次のとおりです。

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

c# - コントロールのあいまいでないイメージをWPFに保存するには?

DrawingContext を使用して画像を描画しています。次に、結果を RenderTargetBitmap にレンダリングします。Canvas も同じ RenderTargetBitmap にレンダリングします。ピクセル境界は画面上ではくっきりしていますが、保存するとぼやけてぼやけてしまいます。

以下のスクリーンショットで、問題を確認できます (BitmapScalingMode = NearestNeighbor を使用)。ここに画像の説明を入力

これは BitmapScalingMode = HighQuality です。それはより滑らかですが、鮮明できれいではありません。 ここに画像の説明を入力

これが私のコードの関連セクションです。複数の場所で RenderOptions を設定しようとしたことがわかりますが、効果がないようです。

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

c# - WPF C# で DrawingVisual をビットマップに変換する方法

次のコードを使用して、DrawingVisual にテキストを描画しています。RenderTargetBitmapこれを使用してビットマップに変換すると、パフォーマンスが向上すると聞きました。

そして最後に、以下のコードを使用してテキストを追加していますCanvas:

RenderTargetBitmapを使用して BMP に変換する場所と、それを MyCanvas に追加する方法がまったくわかりません。

RenderTargetBitmapドキュメントの例では、これを見つけました:

しかし、これをコードに実装する方法がわかりません。

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

wpf - WPF イメージ コントロールからレンダリング イメージを取得する方法

WPF イメージ コントロールにはRenderTransformプロパティがあり、 ScaleSkewRotateなどの多くの変換をイメージに設定します。RenderTransformプロパティを呼び出した後、レンダリングされたイメージをBitmapImageまたはRenderTargetBitmapクラスまたはその他のクラスに取得する方法は?

これは私のコードです: