首先看一下Bitmap定义:封装 GDI+ 位图,此位图由图形图像及其属性的像素数据组成。 Bitmap 是用于处理由像素数据定义的图像的对象。
下面介绍一下使用的例子:
Bitmap image1;
private void Button1_Click(System.Object sender, System.EventArgs e)
{
try
{
// Retrieve the image.
image1 = new Bitmap(@"C:\Documents and Settings\All Users\"
- @"Documents\My Music\music.bmp", true);
int x, y;
// Loop through the images pixels to reset color.
for(x=0; x<image1.Width; x++)
{
for(y=0; y<image1.Height; y++)
{
Color pixelColor = image1.GetPixel(x, y);
Color newColor = Color.FromArgb(pixelColor.R, 0, 0);
image1.SetPixel(x, y, newColor);
}
}
// Set the PictureBox to display the image.
PictureBox1.Image = image1;
// Display the pixel format in Label1.
Label1.Text = "Pixel format: "+image1.PixelFormat.ToString();
}
catch(ArgumentException)
{
MessageBox.Show("There was an error." +
"Check the path to the image file.");
}
}
注释:
位图由图形图像的像素数据及其属性组成。 有许多标准格式可用于将位图保存到文件中。 GDI+ 支持以下文件格式:BMP、GIF、EXIF、JPG、PNG 和 TIFF。 有关支持的格式的详细信息,请参阅 位图的类型。
可以使用其中一个 Bitmap 构造函数从文件、流和其他源创建图像,并使用 方法将它们保存到流或文件系统 Save 。 使用 DrawImage 对象的 方法 Graphics 将图像绘制到屏幕或内存中。 有关使用图像文件的主题列表,请参阅 使用图像、位图、图标和图元文件。
构造函数:
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Bitmap(Image) | 从指定的现有图像初始化 Bitmap 类的新实例。 |
| Bitmap(Image, Int32, Int32) | 从指定的现有图像(缩放到指定大小)初始化 Bitmap 类的新实例。 |
| Bitmap(Image, Size) | 从指定的现有图像(缩放到指定大小)初始化 Bitmap 类的新实例。 |
| Bitmap(Int32, Int32) | 用指定的大小初始化 Bitmap 类的新实例。 |
| Bitmap(Int32, Int32, Graphics) | 用指定的大小和指定的 Graphics 对象的分辨率初始化 Bitmap 类的新实例。 |
| Bitmap(Int32, Int32, Int32, PixelFormat, IntPtr) | 用指定的大小、像素格式和像素数据初始化 Bitmap 类的新实例。 |
| Bitmap(Int32, Int32, PixelFormat) | 用指定的大小和格式初始化 Bitmap 类的新实例。 |
| Bitmap(Stream) | 从指定的数据流初始化 Bitmap 类的新实例。 |
| Bitmap(Stream, Boolean) | 从指定的数据流初始化 Bitmap 类的新实例。 |
| Bitmap(String) | 从指定的文件初始化 Bitmap 类的新实例。 |
| Bitmap(String, Boolean) | 从指定的文件初始化 Bitmap 类的新实例。 |
| Bitmap(Type, String) | 从指定的资源初始化 Bitmap 类的新实例。 |
属性:
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Flags | 获取该 Image 的像素数据的特性标志。 (继承自 Image) |
| FrameDimensionsList | 获取 GUID 的数组,这些 GUID 表示此 Image 中帧的维数。 (继承自 Image) |
| Height | 获取此 Image 的高度(以像素为单位)。 (继承自 Image) |
| HorizontalResolution | 获取此 Image 的水平分辨率(以"像素/英寸"为单位)。 (继承自 Image) |
| Palette | 获取或设置用于此 Image 的调色板。 (继承自 Image) |
| PhysicalDimension | 获取此图像的宽度和高度。 (继承自 Image) |
| PixelFormat | 获取此 Image 的像素格式。 (继承自 Image) |
| PropertyIdList | 获取存储于该 Image 中的属性项的 ID。 (继承自 Image) |
| PropertyItems | 获取存储于该 Image 中的所有属性项(元数据片)。 (继承自 Image) |
| RawFormat | 获取此 Image 的文件格式。 (继承自 Image) |
| Size | 获取此图像的宽度和高度(以像素为单位)。 (继承自 Image) |
| Tag | 获取或设置提供有关图像的附加数据的对象。 (继承自 Image) |
| VerticalResolution | 获取此 Image 的垂直分辨率(以"像素/英寸"为单位)。 (继承自 Image) |
| Width | 获取此 Image 的宽度(以像素为单位)。 (继承自 Image) |
方法:
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Clone() | 创建此 Image 的一个精确副本。 (继承自 Image) |
| Clone(Rectangle, PixelFormat) | 创建此 Bitmap(它由 Rectangle 结构并使用指定的 PixelFormat 枚举定义)部分的副本。 |
| Clone(RectangleF, PixelFormat) | 创建此 Bitmap(用指定的 PixelFormat 枚举定义)部分的副本。 |
| CreateObjRef(Type) | 创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (继承自 MarshalByRefObject) |
| Dispose() | 释放此 Image 使用的所有资源。 (继承自 Image) |
| Dispose(Boolean) | 释放由 Image 占用的非托管资源,还可以另外再释放托管资源。 (继承自 Image) |
| Equals(Object) | 确定指定对象是否等于当前对象。 (继承自 Object) |
| FromHicon(IntPtr) | 从图标的 Windows 图柄创建 Bitmap。 |
| FromResource(IntPtr, String) | 从指定的 Windows 资源创建 Bitmap。 |
| GetBounds(GraphicsUnit) | 以指定的单位获取图像的界限。 (继承自 Image) |
| GetEncoderParameterList(Guid) | 返回有关指定的图像编码器所支持的参数的信息。 (继承自 Image) |
| GetFrameCount(FrameDimension) | 返回指定维度的帧数。 (继承自 Image) |
| GetHashCode() | 作为默认哈希函数。 (继承自 Object) |
| GetHbitmap() | 从此 Bitmap创建 GDI 位图对象。 |
| GetHbitmap(Color) | 从此 Bitmap创建 GDI 位图对象。 |
| GetHicon() | 返回图标的图柄。 |
| GetLifetimeService() | 检索控制此实例的生存期策略的当前生存期服务对象。 (继承自 MarshalByRefObject) |
| GetPixel(Int32, Int32) | 获取此 Bitmap 中指定像素的颜色。 |
| GetPropertyItem(Int32) | 从该 Image 获取指定的属性项。 (继承自 Image) |
| GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr) | 返回此 Image 的缩略图。 (继承自 Image) |
| GetType() | 获取当前实例的 Type。 (继承自 Object) |
| InitializeLifetimeService() | 获取生存期服务对象来控制此实例的生存期策略。 (继承自 MarshalByRefObject) |
| LockBits(Rectangle, ImageLockMode, PixelFormat) | 将 Bitmap 锁定到系统内存中。 |
| LockBits(Rectangle, ImageLockMode, PixelFormat, BitmapData) | 将 Bitmap 锁定到系统内存中。 |
| MakeTransparent() | 让 Bitmap 的默认透明颜色为透明。 |
| MakeTransparent(Color) | 使指定的颜色对此 Bitmap 透明。 |
| MemberwiseClone() | 创建当前 Object 的浅表副本。 (继承自 Object) |
| MemberwiseClone(Boolean) | 创建当前 MarshalByRefObject 对象的浅表副本。 (继承自 MarshalByRefObject) |
| RemovePropertyItem(Int32) | 从该 Image 移除指定的属性项。 (继承自 Image) |
| RotateFlip(RotateFlipType) | 旋转、翻转或者同时旋转和翻转 Image。 (继承自 Image) |
| Save(Stream, ImageCodecInfo, EncoderParameters) | 使用指定的编码器和图像编码器参数,将该图像保存到指定的流。 (继承自 Image) |
| Save(Stream, ImageFormat) | 将此图像以指定的格式保存到指定的流中。 (继承自 Image) |
| Save(String) | 将该 Image 保存到指定的文件或流。 (继承自 Image) |
| Save(String, ImageCodecInfo, EncoderParameters) | 使用指定的编码器和图像编码器参数,将该 Image 保存到指定的文件。 (继承自 Image) |
| Save(String, ImageFormat) | 将此 Image 以指定格式保存到指定文件。 (继承自 Image) |
| SaveAdd(EncoderParameters) | 将帧添加到上次对 Save 方法调用时所指定的文件或流中。 使用此方法将多帧图像中的选定帧保存到另一个多帧图像。 (继承自 Image) |
| SaveAdd(Image, EncoderParameters) | 将帧添加到上次对 Save 方法调用时所指定的文件或流中。 (继承自 Image) |
| SelectActiveFrame(FrameDimension, Int32) | 选择由维度和索引指定的帧。 (继承自 Image) |
| SetPixel(Int32, Int32, Color) | 在此 Bitmap 中设置指定像素的颜色。 |
| SetPropertyItem(PropertyItem) | 在此 Image 中存储一个属性项(元数据片)。 (继承自 Image) |
| SetResolution(Single, Single) | 设置此 Bitmap 的分辨率。 |
| ToString() | 返回表示当前对象的字符串。 (继承自 Object) |
| UnlockBits(BitmapData) | 从系统内存解锁此 Bitmap。 |
上面就是BItmap的基础知识,下面会按照每个方法的如何使用,进行细致讲解。