OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

画像の表示について

  • すぐに回答を!
  • 質問No.172320
  • 閲覧数122
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 35% (35/99)

1.imageボックスを用いた場合、pictureプロパティで画像を参照した後Stretch=Trueにするとそのimageの大きさに合わせて画像を縮小して表示してくれます。

  pictureボックスのときはその大きさに合わせて画像を縮小して表示できません。AutoSize=tureにしても画像の大きさにpictureボックスが大きくなってしまうだけです。
pictureボックスにはそのような縮小機能はないのでしょうか?

指定する画像を縮小して保存し直すしかないのでしょうか?
そうすると表示したい大きさに合わせるのが大変で・・・。


2.ひとつのフォーム上に与えられた変数によって
画像を表示したいと考えています。

私たちが習ったのは
1. まずpictureボックスを1つ用意する。
2. 表示したい枚数だけimageボックスを準備しその中に画像をpictureプロパティで指定する。(画像5枚につきimageボックス5つ)
3. textボックスに数字をいれcommandボタンをおす。
4. その値によって
picture1.piture=image1.picture
という具合で表示させる。

こうなると表示したい画像が10枚あればimageボックスが
10個必要になりますよね。
そうなるとフォーム上がごちゃごちゃなってしまいます。

そうしないように画像をアドレスを指定して直接いれることはできませんか?
image1.picture="gazou1.bmp"(エラーでした・・・。)みたいな感じで・・・。
そうするとimageボックスを1つしか作らなくてよいのですっきりするのですが。

以上2つよろしくお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル14

ベストアンサー率 51% (1179/2272)

こんにちは。maruru01です。 1.について Pictureコントロールは基本的には、拡大/縮小は出来ません。でも、表示させるだけなら、Imageコントロールでいいのではないでしょうか? 2.について 画像の読み込みは、LoadPicture関数を使わなければいけません。 例) image1.Picture = LoadPicture(読み込む画像ファイルのフルパス) また、選択 ...続きを読む
こんにちは。maruru01です。
1.について
Pictureコントロールは基本的には、拡大/縮小は出来ません。でも、表示させるだけなら、Imageコントロールでいいのではないでしょうか?

2.について
画像の読み込みは、LoadPicture関数を使わなければいけません。
例)
image1.Picture = LoadPicture(読み込む画像ファイルのフルパス)

また、選択対象の画像をサムネイル(縮小版)表示させ、そこから選択するのであれば、イメージリストというコントロールがあります。これは、イメージでリスト表示するコントロールです。もちろん、普通のリストボックスのようにクリックで選択して、その画像(のフルパス)を取得することも出来ます。
イメージリストは、標準のコントロールではないので、メニューの[プロジェクト]→[コンポーネント]で、"Microsoft Windows Common Controls 6.0"にチェックを入れて[OK]して下さい。するとコントロールのツールバーにいくつか追加されます。この中にイメージリストがあります。
利用方法は本などを参照して下さい。一応、私が使っている本を紹介しておきます。
では。

  「新Visual Basic入門」(シニア編)
      著:林晴比古    出版:SOFTBANK    2,520円
お礼コメント
sakky_t

お礼率 35% (35/99)

ありがとうございました。

loadpictureばっちりでした。

おかげで先に進めました。
投稿日時 - 2001-11-22 01:08:31


  • 回答No.2
レベル12

ベストアンサー率 65% (276/422)

1.画像の拡大縮小について あらかじめ用意すること Form1.ScaleMode = 3'ピクセル Pictrue1.AutoRedraw = True Pictrue1.AutoSize = Flase Pictrue1.Visible = True Pictrue1.ScaleMode = 3'ピクセル Pictrue2.AutoSize = Tru ...続きを読む
1.画像の拡大縮小について

あらかじめ用意すること

Form1.ScaleMode = 3'ピクセル

Pictrue1.AutoRedraw = True
Pictrue1.AutoSize = Flase
Pictrue1.Visible = True
Pictrue1.ScaleMode = 3'ピクセル

Pictrue2.AutoSize = True
Pictrue2.Visible = Flase
Pictrue1.ScaleMode = 3'ピクセル

と設定しておく

Picture2に画像を読み込んでおく

サイズが変更されるたびに以下の処理を行う
  With Me
    Picture1.Cls
    Call Picture1.PaintPicture(.Picture2.Image, 0, 0, .Picture1.ScaleWidth, .Picture1.ScaleHeight, 0, 0, .Picture2.ScaleWidth, .Picture2.ScaleHeight, vbSrcCopy)
  End With
End Sub


2.画像インデックスについて、
1つのピクチャボックスに複数個の画像を読み込ませるという手もあります。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=167464
ここでやってることは
一.1つのピクチャボックス(Pic1)の中に、さらにピクチャボックス(Pic2)を作成
二.Pic2には複数個の画像を縦に並べて描画
三.Pic1は画像1つ分の大きさにする。
四.Pic2のTOP位置の調整により、複数個の画像が回転するように見える。
です。
微妙なTOP位置の調整により回転には見えますが、数値で正確にTOP位置を指定を行うと、画像の切り替えのように見せることもできます。



別方法としてリソースを使用する方法があるのですが、初耳ですよね?
もし初耳であれば、説明するのに手間がかかりそうなので、これは勘弁してください。
お礼コメント
sakky_t

お礼率 35% (35/99)

pictureボックスを二つ使うとは考えもしませんでした。
いろいろなやり方があるものなんですね。
勉強になりました。

ありがとうございました。
投稿日時 - 2001-11-22 01:11:46
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ