在 C# 中创建位图

位图用于创建和存储计算机图形。位图图像广泛用于网页和数码设备,如相机、智能手机等。最常见的位图图形文件类型有BMPGIFPNGJPEG。在本文中,我们将学习如何在 C# 中以编程方式创建位图。

本文将涵盖以下主题:

  1. C# API 创建位图
  2. 创建新位图
  3. 创建填充矩形的位图
  4. 在位图中加载图像
  5. 调整现有图像的大小
  6. 从 MemoryStream 创建位图到文件

用于创建位图的 C# API - 免费下载

要创建位图,我们将使用 Aspose.Drawing for .NET API。它是一个跨平台的 2D 图形库,用于以编程方式绘制文本、几何图形和图像。它允许加载、保存和操作支持的文件格式

下载 DLL API 或使用 NuGet 安装它。

PM> Install-Package Aspose.Drawing

在 C# 中创建一个新的位图

我们可以按照以下步骤创建新的位图:

  1. 首先,使用指定大小和格式的 Bitmap 类创建一个新的位图。
  2. 接下来,使用 FromImage() 方法从 Bitmap 对象创建一个新的 Graphics 对象。
  3. 然后,用指定的颜色和大小初始化一个 Pen 类对象。
  4. 之后,调用 DrawEllipse() 方法绘制一个指定大小的 Ellipse。
  5. 最后,使用 Save() 方法保存输出图像。

以下代码示例展示了如何在 C# 中以编程方式创建新位图。

// 此代码示例演示如何在 C# 中以编程方式创建新位图。
// 初始化位图对象
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// 创建一个新图形
Graphics graphics = Graphics.FromImage(bitmap);

// 初始化笔
Pen pen = new Pen(Color.Red, 5);

// 画一个矩形
graphics.DrawEllipse(pen, new Rectangle(0, 0, 700, 700));

// 保存文件
bitmap.Save(@"C:\Files\Drawings\output.png");
在 CSharp 中创建新位图

在 C# 中创建一个新的位图

创建填充矩形的位图

我们可以按照以下步骤绘制一个填充的矩形并将其保存在一个新的位图中:

  1. 首先,使用指定大小的 Bitmap 类创建一个新的位图。
  2. 接下来,使用 FromImage() 方法从 Bitmap 对象创建一个新的 Graphics 对象。
  3. 然后,用指定的位置和大小初始化一个 Rectangle 类对象。
  4. 之后,使用画笔颜色和矩形调用 FillRectangle() 方法。
  5. 最后,使用 Save() 方法保存输出图像。

下面的代码示例展示了如何在 C# 中创建一个带有填充矩形的新位图。

// 此代码示例演示如何在 C# 中创建具有填充矩形的新位图。
// 使用指定大小初始化位图
Bitmap bitmap = new Bitmap(500, 500);

// 创建一个新图形
Graphics graph = Graphics.FromImage(bitmap);

// 定义一个矩形
Rectangle ImageSize = new Rectangle(0, 0, 500, 500);

// 绘制一个填充的矩形
graph.FillRectangle(Brushes.Gray, ImageSize);

// 保存文件
bitmap.Save(@"C:\Files\Drawings\output.png");
用填充矩形创建位图

创建填充矩形的位图

使用 C# 在位图中加载图像

我们还可以按照以下步骤在位图中加载现有图像并将其保存为新位图:

  1. 首先,使用 Bitmap 类加载图像。
  2. 接下来,使用指定大小的 Bitmap 类创建一个新的位图。
  3. 然后,使用 FromImage() 方法从新创建的 Bitmap 对象创建一个新的 Graphics 对象。
  4. 之后,使用图像和位置坐标作为参数调用 DrawImage() 方法。
  5. 最后,使用 Save() 方法保存输出图像。

下面的代码示例展示了如何在 C# 中创建一个带有填充矩形的新位图。

// 此代码示例演示如何将图像加载到位图中并另存为新位图。
// 加载图像:
Bitmap image = new Bitmap(@"C:\Files\Drawings\sample.jpg");

// 使用指定大小初始化位图
Bitmap bitmap = new Bitmap(1000, 1000);

// 创建一个新图形
Graphics graphics = Graphics.FromImage(bitmap);

// 在指定位置绘制图像
graphics.DrawImage(image, 10, 10);

// 保存文件
bitmap.Save(@"C:\Files\Drawings\output.png");
使用 CSharp 加载位图中的图像

使用 C# 在位图中加载图像

使用 C# 调整现有图像的大小

我们可以按照以下步骤在位图中加载现有图像并调整其大小并将其保存为新位图:

  1. 使用 Bitmap 类加载现有图像。
  2. 使用带有加载的图像和指定大小的 Bitmap 类创建一个新的位图。
  3. 最后,使用 Save() 方法保存输出图像。

以下代码示例展示了如何调整现有图像的大小并将其保存为 C# 中的新位图。

// 此代码示例演示如何在 C# 中创建调整现有图像大小和创建新位图。
// 加载图像:
Bitmap image = new Bitmap(@"C:\Files\Drawings\sample.jpg");

// 创建一个加载图像一半大小的新位图:
Bitmap bitmap = new Bitmap(image, (int)(image.Width * 0.5), (int)(image.Height * 0.5));

// 保存文件
bitmap.Save(@"C:\Files\Drawings\output.jpg");
使用 CSharp 调整现有图像的大小

使用 C# 调整现有图像的大小

在 C# 中将 MemoryStream 中的位图创建到文件中

我们可以按照以下步骤从内存流字节创建位图:

  1. 将图像文件读入字节数组。
  2. 使用字节数组对象创建 MemoryStream 的新实例。
  3. 使用带有 MemoryStream 对象的 Bitmap 类创建一个新位图。
  4. 最后,使用 Save() 方法保存图像。

以下代码示例显示如何使用 C# 从 MemoryStream 保存位图文件。

// 此代码示例演示如何在 C# 中从内存流字节创建新位图。
// 加载图像并读取所有字节
var file = File.ReadAllBytes(@"C:\Files\Drawings\sample.jpg");

// 创建内存流
MemoryStream stream = new MemoryStream(file);

// 创建一个新的位图
Bitmap bitmap = new Bitmap(stream);

// 保存文件
bitmap.Save(@"C:\Files\Drawings\output.jpg");

获得免费临时许可证

您可以获得免费的临时许可证 试用 Aspose.Drawing for .NET,而不受评估限制。

结论

在本文中,我们学习了如何:

  • 以编程方式创建一个新的位图;
  • 在位图上绘制矩形、椭圆等;
  • 加载现有图像;
  • 调整现有图像的大小并创建具有新大小的新位图;
  • 将 MemoryStream 或字节数组中的位图图像保存到文件中;
  • 在 C# 中设置位图的宽度和高度。

此外,您可以使用 文档 了解更多关于 Aspose.Drawing for .NET 的信息,并探索 API 支持的各种功能。如有任何歧义,请随时在我们的 论坛 上与我们联系。

也可以看看