C# Bitmap初始化
时间: 2023-07-17 19:19:21 浏览: 58
在 C# 中,可以通过以下代码初始化一个 Bitmap 对象:
```csharp
Bitmap bmp = new Bitmap(width, height);
```
其中,`width` 和 `height` 分别表示图像的宽度和高度。如果需要指定图像的像素格式,可以使用以下代码:
```csharp
Bitmap bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb);
```
其中,`PixelFormat.Format24bppRgb` 表示每个像素使用 24 位 RGB 格式表示。也可以使用其他像素格式,如 `PixelFormat.Format32bppArgb` 表示每个像素使用 32 位 ARGB 格式表示。
相关问题
C# 8位深的bitmap
C#中的Bitmap类支持8位深的图像,可以通过设置PixelFormat属性来指定像素格式为Format8bppIndexed。在代码中创建一个8位深的Bitmap对象可以使用如下语句:
```
Bitmap bmp = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format8bppIndexed);
```
其中,width和height分别表示图像的宽度和高度,PixelFormat.Format8bppIndexed表示像素格式为8位深的索引像素格式。创建完Bitmap对象后,还需要对其颜色表进行初始化,代码如下:
```
ColorPalette palette = bmp.Palette;
for (int i = 0; i < 256; i++)
{
palette.Entries[i] = Color.FromArgb(i, i, i);
}
bmp.Palette = palette;
```
以上代码将颜色表的256个条目都初始化为灰度级颜色。之后就可以通过Bitmap对象的SetPixel()方法或LockBits()方法来设置和修改图像的像素值了。
C# 生成8位深bitmap
你可以使用 C# 中的 Bitmap 类来生成一个指定深度(bit-depth)的位图。以下是生成8位深度位图的示例代码:
```csharp
// 创建一个 8 位深度的位图,尺寸为 100x100
Bitmap bmp = new Bitmap(100, 100, System.Drawing.Imaging.PixelFormat.Format8bppIndexed);
// 初始化调色板
ColorPalette palette = bmp.Palette;
for (int i = 0; i < 256; i++)
{
palette.Entries[i] = Color.FromArgb(i, i, i);
}
bmp.Palette = palette;
// 填充位图像素
for (int y = 0; y < bmp.Height; y++)
{
for (int x = 0; x < bmp.Width; x++)
{
bmp.SetPixel(x, y, Color.FromArgb(x % 256));
}
}
// 保存位图
bmp.Save("8bpp_bitmap.bmp");
```
这个代码片段创建了一个 8 位深度的位图,设置了调色板,然后遍历每个像素并填充相应的颜色,最后将位图保存到磁盘上。你可以根据需要修改尺寸和调色板来生成不同的位图。