あるフォルダ内にあるイメージファイルの大きさを統一して他のフォルダに保存するプログラム。
PictureBoxコントロールを使用しているのでフォームに配置しておくこと。
Imports System Imports System.IO Public Class Form1 '画像の格納されているパスを指定 Private Const SRCIMGDIR As String = "C:\画像加工\convert前" '変換後のファイルを保存するパスを指定 Private Const DSTIMGDIR As String = "C:\画像加工\convert後" '画像の縦のサイズを指定 (ピクセル) Private Const H_SIZE As Integer = 100 '------------------------------------------------------------------------- ' メイン処理 '------------------------------------------------------------------------- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '画像の格納されているフォルダを取得 Dim files As String() = System.IO.Directory.GetFiles(SRCIMGDIR, "*", System.IO.SearchOption.AllDirectories) Dim I As Integer 'フォルダの中のファイルを取得 Do Until I > UBound(files) Call ConvertSize(files(I), DSTIMGDIR) I = I + 1 Loop End Sub '------------------------------------------------------------------------- ' 画像のコンバート '------------------------------------------------------------------------- Private Sub ConvertSize(ByVal FilePath As String, ByVal DistPath As String) Dim SaveDstPath As String Dim objBtm As Bitmap Dim lngW As Long Dim lngH As Long 'イメージを取得 objBtm = New Bitmap(FilePath) '指定した高さに画像のサイズを揃える lngH = H_SIZE lngW = objBtm.Width * (H_SIZE / objBtm.Height) 'イメージを指定したサイズに変換 Dim objBtm2 As New Bitmap(objBtm, lngW, lngH) 'PictureBox1コントロールに画像を張り付け(Saveメソッドを使用するため) PictureBox1.Image = objBtm2 PictureBox1.SetBounds(0, 0, _ PictureBox1.Image.Size.Width, _ PictureBox1.Image.Size.Height) 'jpeg形式で保存 SaveDstPath = DistPath & "\" & Path.GetFileName(FilePath) PictureBox1.Image.Save(SaveDstPath, Imaging.ImageFormat.Jpeg) End Sub End Class
動作確認環境:Visual Stadio 2005 ,Windows 7