掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
大きいサイズの高速表示 (ID:21493)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 大きいサイズのイメージを表示させた場合に > いろんなキャプチャーソフトのように高速表示できないかと疑問に思ったのです。 もっと具体的に教えてあげないと意味無いと思います。 まず、WinShot試してみたけど、 うちのデュアルディスプレイでは、それなりに遅かったです。 1600x1200でも、驚くほど早くはありませんでした。 これなら、普通に、bitbltするだけで、この速度は出せますよ。 次に、 Delphiでいう TFormで BorderStyle=bsNone,FormStyle=fsStayOnTop, WindowState=wsMaxmized にイメージを描画する時ですが、 マウスドラッグで、枠を描画した時、時間かかります? これが重いって言うなら、TImageで無駄な描画イベントが たくさん走っているんだと思います。 こうなると TImageを使うのはかえってめんどくさいです。 ので、TFormのOnPaintで TForm.Canvas.Handleにbitbltで直接描画したほうが良いと思います。 TFormに描画する場合もWM_ERASEBKGNDで、フォーム自体の背景塗りつぶしを 無効にし、(前述のママんさんが書いた方法でできます) 1番最初の描画は、全体(Screen.Width, Screen.Height)を使って キャプチャー下画像を、フォーム全体に描画し 2回目以降は、前述したようにTCanvas.ClipRectで位置と幅を求め描画します。 枠自体は、Pen.Mode =pmNot(同じ位置に2回描画すると、元に戻る) で1サイクルずらして2回ずつ組で描画するか、 枠を描く前に、枠が描かれる位置の画像をTBitmapに入れておいてそれで枠を 描く前に、古い枠を消すか などが考えられます。 タスクバーはもう消せますよね? 私も消すより、高さを引くべきだと思いますが、 でも、タスクバーは下にあるとは限らず、左にあったり上にあったりも しますから、消したほうが楽かもしれませんね
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.