VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/05/22(Thu) 15:40
投稿者だいすけ
Eメールdaisuke-k@vanskg.jp
URL
タイトル表示の拡大縮小について

そういうことなんですけどね。 

それだと、1/4倍したPictureBoxに対しての描画はなんら問題ないかも知れないですが、
その1/4倍した画像を2倍、4倍していくと、その画像は段だん劣化していっちゃいますよね?

だから、拡大や縮小を行ったPictureBoxに対しては描画は行っても
意味のないことになりますよね?

おそらく、拡大縮小を行っただけで画像がきたなくなる
ペイントなんで誰も使いたくないですもの。。。

だから、画像を描画するためだけのPictureBoxと描画してるように見えるようにするための
表示する用のPictureBoxを用意し、100%以外の画像に描画が行われようとしたときは、
今のキャンバスが100%に対して何%か調べ、MouseDown-Move-Upされた座標に対して、
その比率をかけてかけてやります。

その比率をかけてやることで、100%のPictureBoxの座標系にかわりますよね?

それで100%の縮尺のPictureboxに対して描画を行い、StretchBltで表示用のキャンバスに返してやるという作業をしてるわけです。

でも、このとき。PictureBox(描画用)のleft-top,left+width,top+heightの位置を全てStretchBlt
すると、転送しようとしてる画像が大きすぎるため、処理が遅く、最後にはとまってしまうわけです。

だから、100%のキャンバスに対して描画を行い、拡大縮小の表示用のキャンバスにデータを転送するときに、描画を行った部位のみ転送してやれば、問題は解消されると考えたのですが、
表示用のキャンバスの座標と描画用のキャンバスの座標をどうやってとっていいのかわからないんです。

やっぱ、まだ分かりにくいですかね。。。


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

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -