未分類

C# ビットマップのクローンを作成する

準備

(なし)

デザイン

1. フォーム (Form1) にボタン (button1) を配置します。

サンプルコード (C#)

// 名前空間の追加
// (なし)

// コード
private void button1_Click(object sender, EventArgs e)
{
  Graphics g = this.CreateGraphics();
  Bitmap bmp1 = new Bitmap(@"D:\test1.jpg");
  Bitmap bmp2 = (Bitmap)bmp1.Clone();
  Bitmap bmp3 = bmp1;
  
  bmp2.RotateFlip(RotateFlipType.Rotate90FlipXY);
  
  g.DrawImage(bmp1, 0, 0, 100, 100);
  g.DrawImage(bmp2, 100, 100, 100, 100);
  g.DrawImage(bmp3, 200, 200, 100, 100);
}

解説

作成されたクローン (bmp2) は、元のビットマップ (bmp1) とは別のものになります。従って、このように 90 度回転させても元もビットマップ (bmp1) には影響がありません。尚、単純にビットマップの参照を代入した bmp3 は bmp1 とまったく同じものになります。従って bmp3 を 90 度回転させた場合は元のビットマップにも影響します。

結果

動作確認環境

Visual Studio 2015 Professional (C# 6.0)

-未分類