掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TImageで矩形を高速で描画するには? (ID:20233)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> グラフィックの高速描画についてはその目的、ハードウェア環境に大きく依存するため一概に言えないと思います。 そうですね。 OS, CPU, 実行前残メモリ、モニタの仕様なども必要でしょう。 「一般のモニタは、1024 * 768 で最適に動作する仕様になっている」と読んだ覚えがありますが、最近は21インチ以上もかなり普及してきているのでそうとも言えないでしょう。 ただ、一般論としてのおおまかな傾向については実験すれば出るでしょうが、「解決」する前にテストする余裕があればお知らせします。 > 正直何がしたいのか分かりません 同感ですが、それはよいとして。 通常 Bitmap.Canvas 上に矩形を描く場合は FrameRect, Polygon, MoveTo/LineTo を使いますが、 Rectangle となると塗りつぶしになりますので、当然時間がかかります。 しかし、塗りつぶす必要性があるのでしょう。 一つ疑問なのは、totanica さんが実行しているモニタの解像度です。 私の場合 1152 * 864 を常時使っていますが、矩形サイズ XGS, SXGA 以上となると縮小して描画しないと ScrollBar を必要としますし、矩形全体を一目で確認できないので不便です。 推測では、実寸で描画しているのではなく、縮小表示した画像に矩形描画しているのではないかと思います。 (例えば、TImage.Stretch := true) もしそうであれば、 ZoomedImage そのものを描画サイズに縮小した Bitmap を StretchDraw などでまず作成し、その上に矩形描画表示すれば劇的に速くなるはずです。 当然座標変換がいちいち必要になりコードは面倒になりますが、そういう演算はコンピュータの得意分野なので、処理にはほとんど時間を要しません。 矩形の座標指定はマウスでしているとの事ですから、通常マウスに手を持っていく間に StretchDraw は実行されてしまうので、その処理時間は無視できるでしょう。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.