tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル画像をPictureBoxにあわせて表示する方法
記事No14017
投稿日: 2009/09/07(Mon) 12:11
投稿者はてなん
はじめまして。ここ最近、JPEGファイルをPictureBoxに表示させるプログラムをVBで作っているのですが、
肝心のPictureBoxにあわせて画像を表示する方法が分かりません。
自分でも調べてみたりもしたのですが結局見つかりませんでした…。
どのようにすればPictureBoxにあわせて表示できるように出来ますか?
よろしくお願いしますm(_ _)m
ちなみに使っているものはVB6.0です。

[ツリー表示へ]
タイトルRe: 画像をPictureBoxにあわせて表示する方法
記事No14018
投稿日: 2009/09/07(Mon) 14:07
投稿者魔界の仮面弁士
> どのようにすればPictureBoxにあわせて表示できるように出来ますか?

PictureBox コントロールに拘らないのであれば、Image コントロールに
切り替えてみては如何でしょうか。Strech プロパティを True に設定すれば、
Image コントロールのサイズに合わせて、画像が拡大/縮小表示されるようになります。


どうしても PictureBox が良いのであれば、このような方法があります。
(PaintPicture の引数指定を変更すれば、縦横比を維持した描画も可能です)

Private P As Picture
Private Sub Form_Load()
    Set P = LoadPicture("C:\sample.jpg")
End Sub

Private Sub Picture1_Paint()
    Picture1.PaintPicture P, 0, 0, Picture1.Width, Picture1.Height
End Sub

[ツリー表示へ]
タイトルRe^2: 画像をPictureBoxにあわせて表示する方法
記事No14019
投稿日: 2009/09/07(Mon) 16:03
投稿者はてなん
魔界の仮面弁士さんおかげで助かりました。ありがとうございます〜^^
ところで…

> PaintPicture の引数指定を変更すれば、縦横比を維持した描画も可能です

これで気になったのですが、どうすれば縦横比を維持したまま描画させることが出来ますか?
良ければ教えてくださいm(_ _)m

[ツリー表示へ]
タイトルRe^3: 画像をPictureBoxにあわせて表示する方法
記事No14020
投稿日: 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


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

[ツリー表示へ]
タイトルRe^4: 画像をPictureBoxにあわせて表示する方法
記事No14021
投稿日: 2009/09/08(Tue) 17:24
投稿者はてなん
魔界の仮面弁士さん再びご教授ありがとうございます><

ところで…
> ヘルプで、『PaintPicture メソッド』について調べてみてください。
についてですが…
インストールする際にMSDNコレクション(ヘルプやサンプルが入っているもの)が無くて
インストール出来なかったのでヘルプが使用出来ません(泣)
せっかくご教授いただいたのに、何故か申し訳ない気持ちでいっぱいです(泣)

[ツリー表示へ]