Imageオブジェクト

これまたWin32APIのBitmapハンドルからでも使用できるようなインターフェースとなっている
参照(http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdrawingimageclasstopic.asp)

  • 構築方法
    • FromFile サンプル
private void button1_Click(object sender, System.EventArgs e)
{
    Image i = Image.FromFile(@"D:\aaa.jpg");
    System.Windows.Forms.PictureBox pictureBox = new PictureBox();
    pictureBox.Size = new Size(50,50);
    pictureBox.Location = new Point(10,10);
    this.Controls.Add(pictureBox);
    pictureBox.Image = i;
}
    • FromHbitmapサンプル
private void button2_Click(object sender, System.EventArgs e)
{
    const int SRCCOPY = 0xCC0020;

    IntPtr hDCDesktop = GetDC(IntPtr.Zero);

    IntPtr hDC     = CreateCompatibleDC( hDCDesktop );
    IntPtr hBitmap = CreateCompatibleBitmap( hDCDesktop, 100, 100 );
    IntPtr hOldBitmap = SelectObject( hDC, hBitmap );
    BitBlt( hDC, 0, 0, size.Width, size.Height, hDCDesktop, 0, 0, SRCCOPY );
    SelectObject( hDC, hOldBitmap );

    Bitmap bitmap = Bitmap.FromHbitmap( hBitmap );
    Image i = Image.FromHbitmap(hBitmap);
    Graphics g = this.CreateGraphics();
    g.DrawImage(i,10,10);

    DeleteDC( hDC );
    DeleteObject( hBitmap );
}   
    • FromStreamサンプル
まだない・・