CH3COOH(酢酸)が.NET FrameworkやWindows Mobileの事を始め、日々情報を発信中!

IconをBitmapに変換する

.NET Compact Frameworkは、.NET Frameworkからモバイル向けにいくつか機能を削除されています。
Icon.ToBitmap()が削除されており、IconからBitmapに変換する場合、ひと手間が必要になります。

今回は、IconからBitmapに変換する方法をご紹介します。

        Dim filePath As String = "\Storage Card\favicon.ico"

        ' 変換先のBitmapオブジェクト
        Dim bmp As Bitmap = Nothing

        ' 変換元のIconオブジェクトを作る
        Using strm As New IO.FileStream(filePath, IO.FileMode.Open), _
              icon As New Icon(strm)

            ' 変換先のBitmapオブジェクトを作る
            bmp = New Bitmap(icon.Width, icon.Height)

            ' iconをbmpに描画する
            Using g As Graphics = Graphics.FromImage(bmp)
                g.DrawIcon(icon, 0, 0)
            End Using
        End Using

        ' PictureBoxへ表示
        Me.PictureBox1.Image = bmp
    string filePath = "\\Storage Card\\favicon.ico";
    
    // 変換先のBitmapオブジェクト
    Bitmap bmp = null;
    
    // 変換元のIconオブジェクトを作る
    using (IO.FileStream strm = new IO.FileStream(filePath, IO.FileMode.Open)) {
        using (Icon icon = new Icon(strm)) {
            
            // 変換先のBitmapオブジェクトを作る
            bmp = new Bitmap(icon.Width, icon.Height);
            
            // iconをbmpに描画する
            using (Graphics g = Graphics.FromImage(bmp)) {
                g.DrawIcon(icon, 0, 0);
            }
        }
    }
    
    // PictureBoxへ表示
    this.PictureBox1.Image = bmp;

上記のコードを実行すると、avicon.icoからシステムによって選ばれたサイズのIconが抽出されます。

任意のサイズのIconを抽出したい場合は、Iconオブジェクトを作る際に抽出したい幅と高さを下記のように指定してください。

    ' 任意のサイズを指定する
    Dim icon As New Icon(strm, 24, 24)
    // 任意のサイズを指定する
    Icon icon = new Icon(strm, 24, 24);

 


Copyright(C) since 2008 CH3COOH(酢酸). All Rights Reserved.