ホームページにできるだけ多くの画像を載せたいので、ひとつひとつの画像のサイズをペイントの「サイズの変更」で変更しているのですが、写真の枚数が多く、いつも苦労しているので、プログラムで処理しようとしているのですがうまくいきません。
今やろうとしているのは、フォーム(f)に設けたPctureBox1に画像を取り込み、拡大縮小の率によって異なるいくつかのボタンを設け、それをクリックし、OpenFileDialogで指定したディレクトリに記録しようというものです。
以下が私のやった内容で、縮小率50%(1000→500)の例です
PictureBox1には画像が取り込まれているとして
Public bmp as New Bitmap(1000,1000)
Public pg as Graphics
Private Sub Button1_Click(-----)
dim img as Bitmap
img=PictureBox1.Image
pg.Clear(Color.Empty)
pg.DrawImage(imag,0,0,500,500)
f.PictureBox1.imag=bmp
End Sub
これにより、画像はPictureBox1上では確かに50%に縮小され
これを、OpenFileDialogで得たPictureNameに
PictrueBox1.Image.Save(PictureName,Imaging.ImageFormat.Jpeg)
として記録するのですが、ペイントでやったの違ってキャンバスが元のままなのです。
キャンバスごと縮小する方法を教えて下さい。
やっている作業は、ペイントで画像を取り込み、サイズを変更して、指定したディレクトリーに記録するのと変わりありませんが、これができればいろいろ応用ができるので実現したいのです。 宜しくお願いします
VB.NETの掲示板で質問しなければいけないのに、こちらの掲示板に
書いてしまいました。
解決した訳ではありませんが、こちらの掲示板では解決とし、
同じ事を.NETの方の掲示板に改めて質問させて頂きます。
すみませんでした。
ここは VB.NET も OK ですよ。
> 縮小率50%(1000→500)の例
縮小画像の作成なら、GetThumbnailImage メソッドとか。
VB2008 ならこんな感じ。
Dim srcFile As String = "C:\〜〜\1000x1000.jpg"
Dim dstFile As String = "C:\〜〜\500x500.jpg"
Using src As New Bitmap(srcFile)
Using img As Image = src.GetThumbnailImage(500, 500, New Image.GetThumbnailImageAbort(Function() False), IntPtr.Zero)
img.Save(dstFile, Imaging.ImageFormat.Jpeg)
End Using
End Using
VB2008 より前のバージョンのサンプルが良ければ、このあたり。
http://www.atmarkit.co.jp/fdotnet/dotnettips/559thumbnail/thumbnail.html
魔界の仮面弁士さんありがとうございました
サンプルと殆ど同じですが、以下の様にして解決しました
Public Function CreateThumbnail(Byval Oigin as Image,Byval w as Integer,Byval h as Integer) as Image
dim ThumbnailB as Bitmap = New Bitmap(w,h)
dim g as Graphics = Graphics.FromImage(ThumbailB)
g.InterpolationMode=Drawing2D.InterpolationMode.HighQualityBicubic
g.DrawImage(Origin,0,0,w,h)
g.Dispose()
Return ThumbnailB
End Function
Public Sub FineReduce(Byval Origin as Image,Byval Filename as String)
dim ThumbnailB as Image=Thumbnail(Origin,Origin.Width/5,Origin.Height/5)
ThumbnailB.Save(Filename,System.Drawing.Imaging.ImageFormat.Jpeg)
End Sub
上記二つのFunctionを作り、FineReduceを呼び出す事で画像は縮小できました。
これまでにも何度か教えて頂き、本当に感謝しております。
菓子折りでも持ってお礼に上がりたい気持ちです。
ツイート | ![]() |