tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: pictureboxの高速描画
投稿日: 2007/07/20(Fri) 11:25
投稿者魔界の仮面弁士
> VB6ではscalemodeに「twip」がありました。これだと結構速く表示されていました。
> しかし、2005はピクセルしか対応していないようです。

Dim bmp0, bmp1, bmp2 As Bitmap
Dim g0, g1, g2 As Graphics

bmp0 = New Bitmap(100, 100)
bmp1 = New Bitmap(100, 100)
bmp2 = New Bitmap(100, 100)
g0 = Graphics.FromImage(bmp0)
g1 = Graphics.FromImage(bmp1)
g2 = Graphics.FromImage(bmp2)

'単位系の変換
g1.ScaleTransform(0.2F, 0.2F)
g2.ScaleTransform(5.0F, 5.0F)

'単位系が変更されているので、下記はすべて異なるスケーリングになる
g0.DrawLine(Pens.Red, 1, 1, 20, 20)
g1.DrawLine(Pens.Red, 1, 1, 20, 20)
g2.DrawLine(Pens.Red, 1, 1, 20, 20)

g0.Dispose()
g1.Dispose()
g2.Dispose()

bmp0.Save("C:\a.png")
bmp1.Save("C:\b.png")
bmp2.Save("C:\c.png")

bmp0.Dispose()
bmp1.Dispose()
bmp2.Dispose()


> 全画面を表示する時もあるためその時は更に遅くなります。
全画面? UXGA のモニタでも1600×1200ドットですし、
10,000ドット×10,000ドットの画像を、一度に表示はできませんよね。

# 3840×2400クラス(QUXGA/Wide)でマルチモニタを組めば何とか表示できる?


> また、CやVC2005で組むと表示関連は関連されるのでしょうか?
言語ではなく、実装を見直さないと駄目かと思います。
よねKENさんが書かれているように、「画面に表示する分だけ描画」するとか、
あるいは画像を一度に読み込まず、幾つかの小さな画像に分割して処理するとか。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。