Csharp/C Sharp/2D Graphics/Pixel

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

BitMap Pixel Format

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 using System.Drawing.Imaging;
 public class Test
 {
   static void Main() 
   {
     // Create two new bitmap images
     Bitmap bmp1 = new Bitmap(100, 100, PixelFormat.Format32bppArgb);
     Bitmap bmp2 = new Bitmap(100, 100, PixelFormat.Format24bppRgb);
     bool b1 = ((bmp1.PixelFormat & PixelFormat.Alpha) != 0);
     bool b2 = ((bmp2.PixelFormat & PixelFormat.Alpha) != 0);
     Console.WriteLine("bmp1 has alpha?: " + b1);
     Console.WriteLine("bmp2 has alpha?: " + b2);
     bmp1.Dispose();
     bmp2.Dispose();
   }
 }
          
      </source>


Get Pixel information

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 using System.Drawing.Imaging;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(292, 273);
     this.Text = "";
     this.Resize += new System.EventHandler(this.Form1_Resize);
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {      
     Graphics gForm = e.Graphics;
     gForm.FillRectangle(Brushes.White, this.ClientRectangle);
     // Create a bitmap in memory
     Bitmap bmp = new Bitmap(6, 6);
     Graphics gBmp = Graphics.FromImage(bmp);
     gBmp.FillRectangle(Brushes.White, 0, 0, bmp.Width, bmp.Height);
     gBmp.DrawLine(Pens.Red, 0, 0, 5, 5);
     gForm.DrawImage(bmp, 20, 20, bmp.Width, bmp.Height);
     // Finally, get the pixel information
     for (int y = 0; y < bmp.Height; ++y)
     {
       for (int x = 0; x < bmp.Width; ++x)
       {
         Color c = bmp.GetPixel(x, y);
         Console.Write("{0,2:x}{1,2:x}{2,2:x}{3,2:x}  ",
           c.A, c.R, c.G, c.G);
       }
       Console.WriteLine();
     }
     bmp.Dispose();
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
     Invalidate();
   }
 }
          
      </source>