Csharp/C Sharp by API/System.Drawing.Imaging/PixelFormat
Содержание
PixelFormat.Alpha
<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.Text; using System.Windows.Forms; public class MainClass {
public static void Main() { // Create two new bitmap images Bitmap bmp1 = new Bitmap(100, 100, PixelFormat.Format32bppArgb); Bitmap bmp2 = new Bitmap(100, 100, PixelFormat.Format24bppRgb); // Test for alpha bool b1 = ((bmp1.PixelFormat & PixelFormat.Alpha) != 0); bool b2 = ((bmp2.PixelFormat & PixelFormat.Alpha) != 0); // Output results to console window Console.WriteLine("bmp1 has alpha?: " + b1); Console.WriteLine("bmp2 has alpha?: " + b2); // Clean up bmp1.Dispose(); bmp2.Dispose(); }
}
</source>
PixelFormat.DontCare
<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class Form1 : Form {
protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; Bitmap bmp = new Bitmap("rama.jpg"); g.FillRectangle(Brushes.White, this.ClientRectangle); Rectangle r = new Rectangle(120, 120, 400, 400); Bitmap bmp2 = bmp.Clone(r, System.Drawing.Imaging.PixelFormat.DontCare); g.DrawImage(bmp, new Rectangle(0, 0, 200, 200)); g.DrawImage(bmp2, new Rectangle(210, 0, 200, 200)); bmp2.Dispose(); } public static void Main() { Application.Run(new Form1()); }
}
</source>
PixelFormat.Format24bppRgb
<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.Text; using System.Windows.Forms; public class MainClass {
public static void Main() { // Create two new bitmap images Bitmap bmp1 = new Bitmap(100, 100, PixelFormat.Format32bppArgb); Bitmap bmp2 = new Bitmap(100, 100, PixelFormat.Format24bppRgb); // Test for alpha bool b1 = ((bmp1.PixelFormat & PixelFormat.Alpha) != 0); bool b2 = ((bmp2.PixelFormat & PixelFormat.Alpha) != 0); // Output results to console window Console.WriteLine("bmp1 has alpha?: " + b1); Console.WriteLine("bmp2 has alpha?: " + b2); // Clean up bmp1.Dispose(); bmp2.Dispose(); }
}
</source>
PixelFormat.Format32bppArgb
<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 image in memory and set its CompositingMode Bitmap bmp = new Bitmap(260, 260, PixelFormat.Format32bppArgb); Graphics gBmp = Graphics.FromImage(bmp); gBmp.rupositingMode = CompositingMode.SourceCopy; // draw a red circle to the bitmap in memory Color red = Color.FromArgb(0x60, 0xff, 0, 0); Brush redBrush = new SolidBrush(red); gBmp.FillEllipse(redBrush, 70, 70, 160, 160); // draw a green rectangle to the bitmap in memory Color green = Color.FromArgb(0x40, 0, 0xff, 0); Brush greenBrush = new SolidBrush(green); gBmp.FillRectangle(greenBrush, 10, 10, 140, 140); // draw the bitmap on our window gForm.DrawImage(bmp, 20, 20, bmp.Width, bmp.Height); bmp.Dispose(); gBmp.Dispose(); redBrush.Dispose(); greenBrush.Dispose(); } private void Form1_Resize(object sender, System.EventArgs e) { Invalidate(); } } </source>