PictureBoxに描画した画像を保存する際、サイズ(縦、横)を変更して保存したいのですが、何か良い方法があるでしょうか?例えば、PhotoShopのようにドキュメントのサイズのようにcm、インチ、ピクセルのように指定したいのですが???
HeightやWidthをtwipで指定するとどーもよくわかりません。
よろしくお願いします。 VB6.0を使用です。
Picture1のピクチャをサイズを指定したPicture2にPaintPictureなりで、
画像をコピーして、保存する…とか?
いちゆさんお返事ありがとうございます。
初心者なもんで、PaintPictureを使用したことがないのですが、
サイズを指定する方法は、仮にピクセルで指定する場合(200×200)、
Picture2.ScaleMode= vbPixel
Picture2.ScaleHeight = 200
Picture2.ScaleWidth = 200
に指定したものにPaintPictureを使用するとそのサイズに変更されるのですか?
よろしくお願いします。
> Picture2.ScaleMode= vbPixel
> Picture2.ScaleHeight = 200
> Picture2.ScaleWidth = 200
Scale系プロパティを操作すると、ScaleModeはユーザ定義になりますので、上記のような指定方法は意味がありません。このあたりの事情は、MSDNライブラリの目次から
[Visual Basic の使用方法]-[プログラミング ガイド]-[テキストおよびグラフィックスの操作]-[座標系]
などで解説されていますので、そちらを参照してください。
> PaintPictureを使用するとそのサイズに変更されるのですか?
MSDNライブラリで、PaintPictureメソッドの解説を読んで見てください。
引数の指定によって、拡大・縮小・反転などが行えるようになっています。
魔界の仮面弁士さんご返事ありがとうございます。
PaintPictureで画像の拡大・縮小はできたのですが、
例えば、画像の大きさを600×50ピクセルで保存しようとして
Picture2.ScaleMode = vbPixels
Picture2.PaintPicture Picture1.Image, 0, 0, 600, 50
SavePicture Picture2.Image, App.Path & "\test.bmp"
と書くと
出来た画像をPhotoShopなどの画像ソフトで参照すると
ピクセル寸法が245×25になってしまいます。
このピクセル寸法に合わせて画像を作成しようとしているのですが、無理でしょうか???
PictureBoxコントロール(Picture2)のサイズを、画像サイズに合わせていますか?
編集 削除>PictureBoxコントロール(Picture2)のサイズを、画像サイズに合わせていま>すか?
Picture2.ScaleMode = vbPixels
Picture2.Width=600
Picture2.Height=50
Picture2.PaintPicture Picture1.Image, 0, 0, 600, 50
SavePicture Picture2.Image, App.Path & "\test.bmp"
にしてみたんですけどうまくいかなかったです。
上でも書かれてますがScaleModeの使い方がおかしいですよ
この場合だとPicture2を貼り付けているフォームのScaleModeをvbPixelsに
しないと意味ありません。
一度ScaleModeの定義を見直してみてはいかがでしょう?
画像系はあまりやってないですけど・・
フォームのScaleModeもセットにしてみては?
Me.ScaleMode = vbPixels
Picture1.ScaleMode = vbPixels
Picture2.ScaleMode = vbPixels
Picture2.AutoSize = True
Picture2.PaintPicture Picture1.Image, 0, 0, 600, 50
SavePicture Picture2.Image, App.Path & "\test.bmp"
みりさん。
すいません。かぶって投稿してしまいました。
Me.ScaleMode = vbPixelsで
解決しました。
いろいろみなさん、お世話になりました。