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

タイトル Re^3: 画像をPictureBoxにあわせて表示する方法
投稿日: 2009/09/07(Mon) 22:22
投稿者魔界の仮面弁士
> > PaintPicture の引数指定を変更すれば、縦横比を維持した描画も可能です
> これで気になったのですが、どうすれば縦横比を維持したまま描画させることが出来ますか?

元画像と PictureBox のそれぞれの縦横サイズを元にして、
何%の拡大/縮小率にするかを計算すれば OK です。

たとえば、元画像の幅と高さが 250x200、表示先の PictureBox が 100x100 だとしたら、
そのままだと、計算上は 幅40%、高さ50%という、縦横で異なる縮小率になりますよね。

縦横比を維持させるためには、縦横ともに同じ拡大/縮小率にしなければなりません。

もし仮に 50% の縮小率にしてしまうと、125x100 という画像サイズになりますから、
100x100 の PictureBox には収まりません。ですから、40% の縮小サイズに合わせて、
100x80 というサイズで描画すれば良いわけです。(当然、その分隙間ができますけれども)


描画方法については、先ほどと同様、PaintPicture メソッドを用います。
ヘルプで、『PaintPicture メソッド』について調べてみてください。
 picture,
 x1, y1, width1, height1,
 x2, y2, width2, height2,
 opcode
と、たくさんの引数が並んでいますよね。

これらを組み合わせると、元画像(ソース)のどの領域を、描画先(デスティネーション)の
どの位置に、どのサイズで描画するかを細かく指定できます。
http://pbgreen.moo.jp/wiki/index.php?PaintPicture%A5%E1%A5%BD%A5%C3%A5%C9


以上をヒントに、具体的なコードを組んでみてください。

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

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