jpg画像をimageで読み込み、PaintPictureで、pictureにサイズを変更して貼り付け、bmpに保存をしようと思ったら、出来ませんでした。
Private Sub pic1_Click()
ima1.Picture = LoadPicture("d:\1.jpg")
pic1.PaintPicture ima1, 0, 0
SavePicture pic1,"kabegami.bmp"
End Sub※一部変更しています。
サイズを変更して、bmp保存をやるには、上記のどこがいけないんでしょうか?
よろしくお願いします。
上記のどこと言われても困るのですが、上記の質問の内容ではbmpの保存ができないと受け取れるのですがpic1にはちゃんと画像は表示されるのですか?
おそらく表示されていないのでは?その場合は
pic1.AutoRedraw=TrueをPaintPictureの前にいれればいけるのでは?
返答有難うございます。
bmpの保存が出来ないととってもらって結構です。
ピクチャーボックスには表示されるのですが、他のウインドウ(ブラウザ等)で、
ピクチャーボックスの上に重ねてからどけると、表示が消えてしまいます。
処理だけして、プロパティーに入っていないって感じです。
> ima1.Picture = LoadPicture("d:\1.jpg")
上記は、古い表記法です。オブジェクト代入時には、
Set ima1.Picture = LoadPicture("d:\1.jpg")
のように、Setステートメントを使うようにして下さい。
過去との互換性のために、[標準コントロール]においては、
Setを使わなくてもPictureオブジェクトを割り当てられるように
なっていますが、[ActiveXコントロール]が対象の場合、
Setを使わないとエラーとなる事があります。
> pic1.PaintPicture ima1, 0, 0
描画内容が消えないようにするために、「AutoRedrawプロパティ」を
設定しておく必要があります。
もうちょっとソースを公開してもらえませんか?
掲示板にソースを乗せるのが気まずいのでしたらメールでもいいです。
再現がされないのでなんともいえません。
> SavePicture pic1,"kabegami.bmp"
あと、これも問題です。
SavePicture pic1.Image, "C:\kabegami.bmp"
のように、「Imageプロパティ」を利用してください。
PictureBox上に描画(PaintPicture, Line, Print, PSet, Circle等)した
内容は、Imageに格納されます。
# SavePictureを使う際に、Imageプロパティを明示しなかった場合は、
# Pictureプロパティの画像が保存される事になります。
おせわになります。
すぺらんか様、メールおくりました。
魔界の仮面弁士様、アドバイスどおり?にやったのですが、
何も書かれていないbmpファイルが出来てしまいました。
>描画内容が消えないようにするために、「AutoRedrawプロパティ」を
>設定しておく必要があります。
フォームのプロパティですよね?
trueにしましたが、変わらなかったです。
念のためfalseでもためしましたが、けっかは同じでした。
すいません、出来ました。
pic1.AutoRedrawのプロパティを、Trueにしたら、ちゃんとbmp保存されました。
みなさん、どうもありがとうございました。