C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

複数のPictureBoxを高速描画する方法

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■88390 / inTopicNo.1)  複数のPictureBoxを高速描画する方法
  
□投稿者/ シンプソンズ (1回)-(2018/08/25(Sat) 12:02:19)

分類:[.NET 全般] 

VB.NETです。

500x500ピクセルのPictureBoxを5個程度フォームに配置し、
これらで表示させる画像を高速で変化させるプログラムを作りたいと考えています。


プログラムはバックグラウンドで走っており、
Forループで画像の生成を行い、
BeginInvokeでフォームに画像を渡し
Invalidateで画像の更新を行っています。

100msくらいの間隔だと、うまく表示できるのですが
50msくらいの間隔になると、画像が更新されないものがでてきてしまいます。

一般的な動画30〜60fpsなので、
これくらいの速度では更新できるのではないかと思うのですが
どのようにすれば、高速描画することができますでしょうか?



引用返信 編集キー/
■88391 / inTopicNo.2)  Re[1]: 複数のPictureBoxを高速描画する方法
□投稿者/ Jitta (405回)-(2018/08/25(Sat) 13:53:46)
No88390 (シンプソンズ さん) に返信
> VB.NETです。
>
> 500x500ピクセルのPictureBoxを5個程度フォームに配置し、
> これらで表示させる画像を高速で変化させるプログラムを作りたいと考えています。
>
>
> プログラムはバックグラウンドで走っており、
> Forループで画像の生成を行い、
> BeginInvokeでフォームに画像を渡し
> Invalidateで画像の更新を行っています。
>
> 100msくらいの間隔だと、うまく表示できるのですが
> 50msくらいの間隔になると、画像が更新されないものがでてきてしまいます。
>
> 一般的な動画30〜60fpsなので、
> これくらいの速度では更新できるのではないかと思うのですが
> どのようにすれば、高速描画することができますでしょうか?
>
>
>
画像の生成は間に合っていますか?
「一般的な動画」の中には、差分だけ書き換えるものがありますが、具体的にどのフォーマットを意識していますか。
1枚ずつInvokeですか?それとも1回のInvokeで複数枚まとめて入れ替えですか?
引用返信 編集キー/
■88392 / inTopicNo.3)  Re[1]: 複数のPictureBoxを高速描画する方法
□投稿者/ Azulean (985回)-(2018/08/25(Sat) 18:43:18)
No88390 (シンプソンズ さん) に返信
> 一般的な動画30〜60fpsなので、
> これくらいの速度では更新できるのではないかと思うのですが
> どのようにすれば、高速描画することができますでしょうか?

まず、自分が見える範囲の処理コストを調べ、自分が目指す処理性能に対して満たしているかを確認しておいた方が良いでしょう。
Stopwatch で測る、プロファイラーで測るなど手法はいろいろとあると思います。

もし、PictureBox の Paint 処理が一番遅いという結果になったとしても、DirectX 使うなどのかなり難易度が上がる話になるので、かんたんではないと思われます。
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ