Graphics g = pictureBox1.CreateGraphics();
  img = Image.FromFile(@"V:\test.jpg");
  Point[] pt = {new Point(0, 0), new Point(90, 30), new Point(20, 100)};
  // (100, 0)にimgを描画
  g.DrawImage(img, new Point(100, 0));
  // (0, 0), (90, 30), (20, 100)から平行四辺形を作成して描画
  g.DrawImage(img, pt);
  // (0, 0)に100×100のサイズでimgを描画
  g.DrawImage(img, new Rectangle(0, 0, 100, 100));
  // (100, 0)にimgを描画
  g.DrawImage(img, 100, 0);
  // (0, 0), (90, 30), (20, 100)から平行四辺形を作成してimgの(0, 0)から(200, 200)までを描画
  g.DrawImage(img, pt, new Rectangle(0, 0, 200, 200), GraphicsUnit.Pixel);

// 1. (0, 0)にimgを描画
g.DrawImage(img, new Point(0, 0));
// 2. 平行四辺形を作成して描画
g.DrawImage(img, pt);
// 3. 1のPointF型
g.DrawImage(img, new PointF(10.0F, 10.0F));
// 4. 2のPointF型
g.DrawImage(img, ptF);
// 5. 場所とサイズを指定
g.DrawImage(img, new Rectangle(0, 0, 50, 50));
// 6. 5のRectangleF型
g.DrawImage(img, new RectangleF(0.0F, 0.0F, 50.0F, 50.0F));
// 7. 3をx, y分解
g.DrawImage(img, 10.0F, 10.0F);
// 8. 1をx, y分解
g.DrawImage(img, 10, 10);
// 9. 2と5の合成
g.DrawImage(img, pt, new Rectangle(0, 0, 50, 50), GraphicsUnit.Pixel);
// 10. 4と6の合成
g.DrawImage(img, ptF, new RectangleF(0.0F, 0.0F, 50.0F, 50.0F), GraphicsUnit.Pixel);
    // 11. srcRectangleで切り取ってdstRectangleへ拡大縮小
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), new Rectangle(0, 0, 50, 50), GraphicsUnit.Pixel);
  // 12. 11のRectangleF型
  g.DrawImage(img, new RectangleF(0.0F, 0.0F, 200.0F, 200.0F), new RectangleF(0.0F, 0.0F, 50.0F, 50.0F), GraphicsUnit.Pixel);
  // 13. 指定した位置に指定したサイズで
  g.DrawImage(img, 50.0F, 50.0F, 100.0F, 100.0F);
  // 14. 指定した位置に指定したRectangleで切り取って
  g.DrawImage(img, 50.0F, 50.0F, new RectangleF(30.0F, 30.0F, 100.0F, 100.0F), GraphicsUnit.Pixel);
  // 15. 13のInt型
  g.DrawImage(img, 50, 50, 100, 100);
  // 16. 14のInt型
  g.DrawImage(img, 50, 50, new Rectangle(30, 30, 100, 100), GraphicsUnit.Pixel);
  // 17. 9にimgAttrを追加
  g.DrawImage(img, pt, new Rectangle(30, 30, 100, 100), GraphicsUnit.Pixel, imgAttr);
  // 18. 17のFloat型
  g.DrawImage(img, ptF, new RectangleF(30.0F, 30.0F, 100.0F, 100.0F), GraphicsUnit.Pixel, imgAttr);
  // 19. 17にコールバック追加
  g.DrawImage(img, pt, new Rectangle(30, 30, 100, 100), GraphicsUnit.Pixel, imgAttr, DrawImageAbort);
  // 20. 18にコールバック追加
  g.DrawImage(img, ptF, new RectangleF(30.0F, 30.0F, 100.0F, 100.0F), GraphicsUnit.Pixel, imgAttr, DrawImageAbort);
    // 21. 19にcallbackData追加
  g.DrawImage(img, pt, new Rectangle(0, 0, 200, 200), GraphicsUnit.Pixel, imgAttr, DrawImageAbort, 0);
  // 22. 20にcallbackData追加
  g.DrawImage(img, ptF, new RectangleF(30.0F, 30.0F, 100.0F, 100.0F), GraphicsUnit.Pixel, imgAttr, DrawImageAbort, 0);
  // 23. x, y, width, heightを指定して画像の一部分を描画
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10.0F, 10.0F, 70.0F, 70.0F, GraphicsUnit.Pixel);
  // 24. 23のint版
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10, 10, 70, 70, GraphicsUnit.Pixel);
  // 25. 23にimgAttr追加
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10.0F, 10.0F, 70.0F, 70.0F, GraphicsUnit.Pixel, imgAttr);
  // 26. 24にimgAttr追加
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10, 10, 70, 70, GraphicsUnit.Pixel, imgAttr);
  // 27. 25にcallback追加
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10.0F, 10.0F, 70.0F, 70.0F, GraphicsUnit.Pixel, imgAttr, DrawImageAbort);
  // 28. 26にcallback追加
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10, 10, 70, 70, GraphicsUnit.Pixel, imgAttr, DrawImageAbort);
  // 29. 27にIntPtr追加
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10.0F, 10.0F, 70.0F, 70.0F, GraphicsUnit.Pixel, imgAttr, DrawImageAbort, ptr);
  // 30. 28にIntPtr追加
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10, 10, 70, 70, GraphicsUnit.Pixel, imgAttr, DrawImageAbort, ptr);