Visual Basic 中学校 > Visual Basic サンプル集 > Visual Basic サンプル集目次 >
画像を拡大・縮小する
以下の関数Magnifyを使用すると、画像を拡大・縮小できる。使用例はすぐ下にある。
'■Magnify ''' <summary>画像を拡大・縮小する。</summary> ''' <param name="Source">対象の画像</param> ''' <param name="Rate">拡大率。以下の値を指定した場合は縮小される。</param> ''' <param name="Quality">画質。省略時は最高画質。</param> ''' <returns>処理後の画像</returns> Private Function Magnify(ByVal Source As Image, ByVal Rate As Double, Optional ByVal Quality As Drawing2D.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic) As Image '▼引数のチェック If
IsNothing(Source) Then If
CInt(Source.Size.Width * Rate) <= 0
OrElse CInt(Source.Size.Height
* Rate) <= 0 Then '▼処理後の大きさの空の画像を作成 Dim NewRect As Rectangle NewRect.Width =
CInt(Source.Size.Width
* Rate) Dim DestImage As New Bitmap(NewRect.Width, NewRect.Height) '▼拡大・縮小実行 Dim g As Graphics = Graphics.FromImage(DestImage) g.InterpolationMode = Quality Return DestImage End Function |
メモ:拡大・縮小は基本的には不可逆変換です。2倍に拡大した画像を半分に縮小しても元の画像に戻る保障はありません。拡大・縮小を繰り返すことにより画質は劣化します。
使用例1:PictureBox1の画像を1.2倍に拡大する例
PictureBox1.Image = Magnify(PictureBox1.Image, 1.2F) |
メモ:PictureBox1にはあらかじめ画像を読み込んでおくなどしてImageプロパティに値をセットしておく必要があります。
使用例2:PictureBox1の画像を0.8倍に縮小する例
PictureBox1.Image = Magnify(PictureBox1.Image, 0.8F) |
メモ:PictureBox1にはあらかじめ画像を読み込んでおくなどしてImageプロパティに値をセットしておく必要があります。