0.はじめに
この文章では、ビットマップを始めJPEG・GIFなどの様々なフォーマットの画像を用いてサンプルプログラムを組んでいますが、決して画像フォーマットについて検証するものではありません。 従って、各々の画像フォーマットについて詳しく説明することはしません。 必要な場合は適宜調べるなどしてください。
|
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 |
Module ImageFormatAndCodec ' アプリケーションのエントリーポイント Sub Main() Dim imageSource As System.Drawing.Image ' ファイルからBitmapオブジェクトを作成 imageSource = System.Drawing.Bitmap.FromFile("E:\source.bmp") ' BitmapオブジェクトをGIFで保存 imageSource.Save("E:\dest.gif", System.Drawing.Imaging.ImageFormat.Gif) ' BitmapオブジェクトをPNGで保存 imageSource.Save("E:\dest.png", System.Drawing.Imaging.ImageFormat.Png) ' BitmapオブジェクトをJPEGで保存 imageSource.Save("E:\dest.jpg", System.Drawing.Imaging.ImageFormat.Jpeg) ' Bitmapオブジェクトを解放 imageSource.Dispose() End Sub End Module |
![]() |
![]() |
![]() |
| dest.gif (16.9kB) | dest.png (4.67kB) | dest.jpg (5.49kB) |
|
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 |
Option Strict On Module ImageFormatAndCodec ' アプリケーションのエントリーポイント Sub Main() Dim encoderInfo As System.Drawing.Imaging.ImageCodecInfo ' JPEG用のImageCodecInfoオブジェクトを取得 encoderInfo = GetEncoderInfo("image/jpeg") ' ImageCodecInfoオブジェクトが取得できない場合は中止 If encoderInfo Is Nothing Then Return ' エンコーダパラメータ Dim encoderParams As New System.Drawing.Imaging.EncoderParameters() ' 品質を指定するパラメータ (品質25) encoderParams.Param(0) = New System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 25) ' 元のイメージ Dim sourceImage As System.Drawing.Image ' ファイルからBitmapオブジェクトを作成 sourceImage = System.Drawing.Bitmap.FromFile("E:\source.bmp") ' ImageCodecInfoオブジェクトおよびエンコーダパラメータを指定して出力 sourceImage.Save("E:\dest.jpg", encoderInfo, encoderParams) ' イメージを解放 sourceImage.Dispose() End Sub ' 指定された MIME と一致するイメージエンコーダを取得する Function GetEncoderInfo(ByVal mimeType As String) As System.Drawing.Imaging.ImageCodecInfo Dim encoderInfoes() As System.Drawing.Imaging.ImageCodecInfo Dim encoderInfo As System.Drawing.Imaging.ImageCodecInfo ' イメージエンコーダ一覧を取得 encoderInfoes = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders() ' 一覧から指定された MIME と一致するものを探す For Each encoderInfo In encoderInfoes ' MIME が一致するか If encoderInfo.MimeType = mimeType Then Return encoderInfo Next ' 見つからない場合 Return Nothing End Function End Module |
![]() |
| dest.jpg (3.27kB) |
|
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 |
Option Strict On Module ImageFormatAndCodec ' アプリケーションのエントリーポイント Sub Main() Dim encoderInfo As System.Drawing.Imaging.ImageCodecInfo ' TIFF用のImageCodecInfoオブジェクトを取得 encoderInfo = GetEncoderInfo("image/tiff") ' ImageCodecInfoオブジェクトが取得できない場合は中止 If encoderInfo Is Nothing Then Return ' エンコーダパラメータ Dim encoderParams As New System.Drawing.Imaging.EncoderParameters() ' 色深度パラメータ encoderParams.Param(0) = New System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.ColorDepth, 24L) ' 元のイメージ Dim sourceImage As System.Drawing.Image ' ファイルからBitmapオブジェクトを作成 sourceImage = System.Drawing.Bitmap.FromFile("E:\source.bmp") ' ImageCodecInfoオブジェクトおよびエンコーダパラメータを指定して出力 sourceImage.Save("E:\dest.tif", encoderInfo, encoderParams) ' イメージを解放 sourceImage.Dispose() End Sub ' 途中略 End Module |