タイトル : 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 以上をヒントに、具体的なコードを組んでみてください。 |