画像のサイズを変換


あるフォルダ内にあるイメージファイルの大きさを統一して他のフォルダに保存するプログラム。
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