1

これまで Windows.Forms で画像を描画するためにさまざまな手法を使用してきましたが、現在、製品のスキン画像のレンダリングを処理するいくつかのコア ライブラリを再検討しています。バックグラウンド コントロールのフィールドを表すために、同じ画像を複数回 (タイル状に) レンダリングすることに特に関心があります。画像が正確に適切なサイズ (スケーリングは不要) で、並べて表示する部分のみが含まれていると仮定すると、その画像を画面に描画する最速の方法は何ですか?

私が使用した最適化の 1 つは、画像を PixelFormat.Format32bpp P Argb に変換することです。これにより、アルファ チャネルの一部が事前計算されます。

DrawImage と DrawImageUnscaled の間にパフォーマンスの違いはありますか?

文書化された期待ではなく、実際の経験を求めています。

更新:フレームワーク クラスを掘り下げた後、Control クラスは、画像を並べて表示する TextureBrush を使用していることがわかります。これは有望に見えます。

4

1 に答える 1

1

p / invokeを実行する場合は、BitBltを使用してください。そうでない場合は、DrawImageUnscaledで問題ありません。

于 2009-05-22T20:43:41.983 に答える