BitBltで画面サイズより大きな画像を縮小するには?

解決


水無月  2004-06-24 00:23:24  No: 114180

BitBltを使ってピクチャボックスに表示した画像を別のピクチャボックスに表示するものを作っています。
小さい画像の場合はいいのですが、画面より大きな画像(ピクチャボックス)を縮小表示しようとすると、画面よりはみ出た部分が縮小表示されません。
なにか対策方法がありましたらお教え下さい。
使用OSはXP,VBはVer6 SP5を使用しています。  よろしくお願いいたします。


マグ  2004-06-24 01:44:24  No: 114181

それを画像の形を変えてしまうのではないでしょうか?
保存するときに困りませんか?

スクロールバーで移動というのはどうでしょうか?
これなら、画像の形自体を変えずに保存するときに困りませんし、
画像全体がどうなっているのか把握できると思います。


Say  2004-06-24 01:52:44  No: 114182

BitBltは等倍コピー用です。
拡大縮小したかったら、
StretchBltを使ってください。

また、Stretch = Trueにした
Imageコントロールに読み込む、という手もあります。


水無月  2004-06-24 17:58:22  No: 114183

すみません。
BitBltではなく、よく見たらStretchBltを使ってやってました(汗)
実は、元画像が大きい際にはスクロールバーでスクロール表示させ(←この部分は成功)、その画像を 640 * 480 くらいに縮小して保存するツールが出来たらなぁ…と思って挑戦してました(まだ縮小表示から先に進めませんです)。
すみません。  お知恵をお貸し下さい。


マグ  2004-06-24 23:01:12  No: 114184

では、WidthとHeightで直接行ってみてはどうでしょうか?


水無月  2004-06-28 22:35:27  No: 114185

いろいろなかたがたにアドバイスしていただき、本当にありがとうございました。m(__)m
もう少しいろいろやってみます。


ポテチ  2004-06-28 22:51:42  No: 114186

>画面より大きな画像(ピクチャボックス)を縮小表示しようとすると
>画面よりはみ出た部分が縮小表示されません。

ちょっと、確認したいことがあるのですが
水無月さんのFormのAutoRedrawプロパティはTrueになってます
でしょうか?
念のため・・・


ポテチ  2004-06-29 01:12:24  No: 114187

>FormのAutoRedrawプロパティ

正確に言うとコピー元のピクチャーボックスの
FormのAutoRedrawプロパティです。


水無月  2004-06-29 17:43:25  No: 114188

>FormのAutoRedrawプロパティ
今確認しましたところ、なんとコピー元のフォーム、ピクチャボックスともAutoRedrawがFalseになっていました。  コピー先はいろいろいじったのですがコピー元をやっておかなかったのとは、まったくもっておばかさんでした。
しっかりと縮小した画像が表示されました!
みなさま本当にありがとうございましたm(__)m


水無月  2004-06-29 17:49:08  No: 114189

↑(上の発言の訂正)
コピー元のピクチャボックスは画像読み込み終了とともにAutoRedraw=Trueにしていましたが、FormのAutoRedrawをFalseのままにしていました。

いづれにせよ皆様にご迷惑をおかけいたしました。
本当にありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加