2016-10-07 7 views
0

プログラムをズームインしてズームアウトする(2倍、4倍、8倍)ことができますが、使用できるズーム機能を使用できません。私はビットマップイメージをインポートしました。そして、私は各ピクセルのrgb色を得ることができます。私はr、g、b色のmatResize colorR、colorG、colorBを作成しました。 panel.Iは、このような2倍の画像を描画する:C#ズームインして画像をズームアウトする

オリジナルイメージ(例えば3×3画素)を(空間に対するp =ピクセルの色と "_")を

p1_p2_p3

p4_p5_p6

p7_p8_p9

2Xズーム画像(なぜならorginal画像サイズの6×6画素)(P =空間の画素orginal画像の色と "を_")

p1_p1_p2_p2_p3_p3

p1_p1_p2_p2_p3_p3

それはどのように私はループの を書くことができますcomplety wrong.Soあるので

p4_p4_p5_p5_p6_p6

p4_p4_p5_p5_p6_p6

p7_p7_p8_p8_p9_p9

p7_p7_p8_p8_p9_p9

私は1つのループを書いたが、それはうまくいきませんでした?

private void button4_Click(object sender, EventArgs e) { 
     listBox1.Items.Clear();//insignificant 
     listBox2.Items.Clear();//insignificant 
     listBox3.Items.Clear();//insignificant 

     using (OpenFileDialog dlg = new OpenFileDialog()) { 
      dlg.Title = "Open Image"; 
      dlg.Filter = "*.bmp|*.bmp|*.*|*.*"; 

      if (dlg.ShowDialog() == DialogResult.OK) { 
       pictureBox1.Image = new Bitmap(dlg.FileName); 
      } 
     } 
    } 

    private void button1_Click(object sender, EventArgs e) { 
     Graphics my2xImage = panel1.CreateGraphics(); 

     int bmpHeight = pictureBox1.Image.Height; 
     int bmpWidth = pictureBox1.Image.Width; 
     Bitmap bmpFirst = (Bitmap)pictureBox1.Image.Clone(); 

     int[,] colorR = new int[bmpHeight, bmpWidth]; 
     int[,] colorG = new int[bmpHeight, bmpWidth]; 
     int[,] colorB = new int[bmpHeight, bmpWidth]; 



     for (int y = 0; y < bmpHeight; y++) { 
      for (int x = 0; x < bmpWidth; x++) { 
       Color pixelColor = bmpFirst.GetPixel(x, y); 

       colorR[x, y] = pixelColor.R; 
       colorG[x, y] = pixelColor.G; 
       colorB[x, y] = pixelColor.B; 

       listBox1.Items.Add("(" + (x + 1) + "," + (y + 1) + ")" + " " + colorR[x, y]);//insignificant 
       listBox2.Items.Add("(" + (x + 1) + "," + (y + 1) + ")" + " " + colorG[x, y]);//insignificant 
       listBox3.Items.Add("(" + (x + 1) + "," + (y + 1) + ")" + " " + colorB[x, y]);//insignificant 

      } 

     } 



     //for (int y = 0; y < (bmpHeight * 2); y++) 
     //{ 
     // for (int x = 0; x < (bmpWidth * 2); x++) 
     // { 
     //  Color mySpecialColor = Color.FromArgb(colorR[x,y], colorG[x,y], colorB[x,y]); 
     //  SolidBrush pixelBrush = new SolidBrush(mySpecialColor); 
     //  my2xImage.FillRectangle(pixelBrush, x, y, 1, 1); 
     // } 
     //} 


    } 

    private void button5_Click(object sender, EventArgs e) { 

    } 

    private void button2_Click(object sender, EventArgs e) { 

    } 

答えて

関連する問題