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