• 締切済み

画像の表示について

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つよろしくお願いします。

みんなの回答

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

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
質問者

お礼

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

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 1.について Pictureコントロールは基本的には、拡大/縮小は出来ません。でも、表示させるだけなら、Imageコントロールでいいのではないでしょうか? 2.について 画像の読み込みは、LoadPicture関数を使わなければいけません。 例) image1.Picture = LoadPicture(読み込む画像ファイルのフルパス) また、選択対象の画像をサムネイル(縮小版)表示させ、そこから選択するのであれば、イメージリストというコントロールがあります。これは、イメージでリスト表示するコントロールです。もちろん、普通のリストボックスのようにクリックで選択して、その画像(のフルパス)を取得することも出来ます。 イメージリストは、標準のコントロールではないので、メニューの[プロジェクト]→[コンポーネント]で、"Microsoft Windows Common Controls 6.0"にチェックを入れて[OK]して下さい。するとコントロールのツールバーにいくつか追加されます。この中にイメージリストがあります。 利用方法は本などを参照して下さい。一応、私が使っている本を紹介しておきます。 では。   「新Visual Basic入門」(シニア編)       著:林晴比古    出版:SOFTBANK    2,520円

sakky_t
質問者

お礼

ありがとうございました。 loadpictureばっちりでした。 おかげで先に進めました。

関連するQ&A

  • OpenCVで処理した画像の表示方法。

    VC++でOpenCVを使って画像処理を研究中です。 OpenCVでの画像の表示は、 char *filename = "lena.jpg"; image = cvLoadImage(filename, CV_LOAD_IMAGE_COLOR); cvNamedWindow ("lena", CV_WINDOW_AUTOSIZE); cvShowImage ("lena",image); で出来るということは分かりました。 しかし、MFCで作ったフォームのピクチャーボックスへの表示の仕方が分かりません。 画像処理は実行ボタンでpictureBox1の元の画像をpictureBox2に表示させようと考えております。 回答のほど、どうぞよろしくお願いいたします。 また、分かりやすいサイトなどありましたらお願いします。

  • VC++でマウスホイールイベントを使いたいのですが

    VC++2010のフォームアプリケーションについての質問です。 フォームに設置したピクチャーボックス上でマウスホイールをすることで、ピクチャーボックスに表示されている画像(BMP)を拡大・縮小できるようにしたいのですが… 色々と試しているのですが、 ・マウスホイールのイベントが反映されない ・拡大縮小のやり方がわからない です。 どなたかご教授頂けると幸いです。

  • PictureBoxの画像の表示方法を教えて VB.NET

    VB.NET2003環境なのですが、 ピクチャーボックスに画像を表示したいのですが、 下記のようなことはできるでしょうか? ピクチャーボックスの大きさ640*240で固定 画像ファイル640*480 だった場合に、画像を縮小して、横長のピクチャーボックスの 中央に(左右に余白をつける)画像ファイルを表示したいです。 ピクチャーボックス自体の大きさを変える方法などは分かったのですが、 表示前にファイルの画像のサイズを小さくして、位置を指定して 表示する方法がわからないので、このようなことができましたら、 方法をご教示頂きたいです。 よろしくお願い致します。

  • 画像イメージ一覧

    特定フォルダの画像(jpeg,bmp,gif等)を一覧表示させるには、 1.イメージコントロールに画像をはりつけていく 2.フォルダにある画像分、イメージコントロール  をはりつけていく(縮小表示) のようなコーディングだと思うのですが、 フォームに収まりきらないとき、下にスクロール等 させたいときなんかはどのようなコントロールを 使用したらいいのかいまいちわかりません。 何かいい方法ありますでしょうか?

  • アクセス 画像を更新したい

    フォーム1にイメージコントロールを置き ピクチャタイプをリンクにして、 ピクチャのパスを C:\Users\Desktop\無題.jpg のように指定してますが フォームが開いている最中に無題.jpgの中身が変わったら、 フォーム(イメージ)に表示する画像も更新させるvbaコードはありますか? 画像が更新→フォーム閉じてを開き直す と更新されますが、 Form_フォーム1.イメージ2.Requery としても何も起こらないし、エラーにもならないです。

  • 画像の縮小をすると粗くなってしまいます

    640×480pixelのピクチャボックスに ビットマップファイルを読み込み print メソッドで文字を出力してから 120×120pixelのピクチャボックスに StretchBlt を使用して縮小表示していますが、 画像が粗くなり文字が読み取れなくなって困っています。 すっきりきれいに縮小表示する方法があれば教えてください。 よろしくお願いします。

  • 縮小表示で画像が表示されなくなった

    OSは Windows Me です。画像を入れているホルダーで 表示⇒縮小表示をクリックすると縮小した画像が表示されていましたが、jpeg画像がアイコンが表示されるのみで画像は表示されなくなりました。bmp画像は表示されます。jpeg画像が縮小表示される方法を教えて下さい。

  • 画像をCSSのurlを使って表示する方法

    ./gazou/background/bg005.gifこちらに画像ファイルがあるのですが、この画像をCSSのurlを使って表示するときどのように指定すればよいのでしょうか? ./basecss.cssに background-image :url("./gazou/background/bg005.gif");と記載してもうまくいきません。 カレントデイレクトリはすべて同じデイレクトリです。 CSSもカレントデイレクトリは./ではないのでしょうか?ほかのフォルダにある画像ファイルは問題なく表示されます。 {background-image:url("../test/gazou/background/bg006.gif"); 上記はうまくいく。

    • ベストアンサー
    • CSS
  • ウインドウへのイメージ画像の表示について

    メインウインドウにイメージを貼り付けたいと思うのですが ウインドウのクライアントエリア全体にでは無く 添付画像の様に任意の場所に任意の大きさで表示したいと思っています。 当初は「イメージボックス」(ピクチャボックス)を使うことを 考えたのですが、画像が自動的にコントロールの大きさに合わせて 拡大縮小されたり、スクロールバーが付けられなかったりして うまく扱えませんでした。 イメージの周りに「クライアントエッジ」が付けられればと思います。 「クライアントエリアのみの子ウインドウ」のようなものが あって、それをメインウインドウに貼り付ける、みたいな ことが出来ればいいなと思っているのですが、良い方法が ありましたら教えて下さい。 ActiveBasicを使っていますが、教えて頂く際には CやVBでも構いません。

  • 画像が縮小表示されない・・・

    インターネットのホームページ等の画像を個人で楽しむために保存するのですが・・・前のOSのMeの時はマイ・ピクチャに保存した画像を 表示→縮小 で画像が小さく表示されましたが今のOSのXPにしてからはそれでできません・・・もちろんできる画像もあるのですが、できない画像もできました。たとえば例をあげますと 以下のページの http://zxz.jugem.jp/ 真ん中の左端に写ってる(現段階ではアイドルの宮崎あおい)のを右クリック→名前をつけて保存(マイ・ピクチャに)して縮小表示しても無理です。あとMEの時のアイコンも違ってます、前まではその宮崎あおいの所に右クリック→プロパティの全般で右上に表示されてるマークがピクチャに並んでましたが今(XP)は違うマーク(空と山?みたいな模様です)です。前見たくjペグのマークで表示はされないのでしょうか?&この画像を縮小表示はできないのでしょうか?よろしくお願いします。