Csharp/C Sharp/2D Graphics/Pixel

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

BitMap Pixel Format

  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();
    }
  }


Get Pixel information

  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();
    }
  }