タイトル | : Re^3: 画像をPictureBoxにあわせて表示する方法 |
記事No | : 14020 |
投稿日 | : 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
以上をヒントに、具体的なコードを組んでみてください。
|