Tạo, tải, điền và vẽ bitmap trong C#

Một bitmap được sử dụng để tạo và lưu trữ đồ họa máy tính. Hình ảnh bitmap được sử dụng rộng rãi trên các trang web và thiết bị kỹ thuật số như máy ảnh, điện thoại thông minh, v.v. Các loại tệp đồ họa bitmap phổ biến nhất là BMP, GIF, PNGJPEG. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo ảnh bitmap trong C#.

Các chủ đề sau đây sẽ được đề cập trong bài viết này:

  1. API C# để tạo, tải, điền và vẽ bitmap
  2. Tạo Bitmap mới từ đầu
  3. Tạo Bitmap từ Byte Array
  4. Lưu bitmap dưới dạng tệp hình ảnh
  5. Vẽ hình trên Bitmap
  6. Vẽ văn bản trên ảnh Bitmap
  7. Điền bitmap bằng màu đơn sắc
  8. Tải hình ảnh trong Bitmap
  9. Thay đổi kích thước hình ảnh hiện có bằng Bitmap

API C# để tạo, tải, điền và vẽ bitmap - Tải xuống miễn phí

Để tạo ảnh bitmap, chúng tôi sẽ sử dụng API Aspose.Drawing for .NET. Nó là một thư viện đồ họa 2D đa nền tảng để vẽ văn bản, hình học và hình ảnh theo chương trình. Nó cho phép tải, lưu và thao tác với các định dạng tệp được hỗ trợ.

Vui lòng tải xuống tệp DLL của API hoặc cài đặt nó bằng NuGet.

PM> Install-Package Aspose.Drawing

Tạo một Bitmap mới trong C#

Chúng ta có thể tạo một bitmap mới từ đầu bằng cách thực hiện theo các bước dưới đây:

  1. Đầu tiên, tạo một bitmap mới bằng cách sử dụng lớp Bitmap với kích thước và định dạng được chỉ định.
  2. Tiếp theo, tạo một đối tượng Đồ họa mới từ đối tượng Bitmap bằng phương thức FromImage().
  3. Sau đó, khởi tạo một đối tượng lớp Pen với màu sắc và kích thước được chỉ định.
  4. Sau đó, gọi phương thức DrawEllipse() để vẽ một hình Ellipse với kích thước xác định.
  5. Cuối cùng, lưu hình ảnh đầu ra bằng phương thức Save().

Mẫu mã sau đây cho biết cách tạo ảnh bitmap mới trong C#.

// Ví dụ mã này trình bày cách tạo một bitmap mới theo chương trình trong C#.
// Khởi tạo đối tượng Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Tạo một đồ họa mới
Graphics graphics = Graphics.FromImage(bitmap);

// Khởi tạo bút
Pen pen = new Pen(Color.Red, 5);

// Vẽ một hình chữ nhật
graphics.DrawEllipse(pen, new Rectangle(0, 0, 700, 700));

// Lưu các tập tin
bitmap.Save(@"C:\Files\Drawings\output.png");
Tạo-a-Bitmap-mới-trong-CSharp

Tạo một Bitmap mới trong C#

Tạo Bitmap từ Byte Array trong C#

Chúng ta có thể tạo một bitmap từ các byte dòng bộ nhớ bằng cách thực hiện theo các bước dưới đây:

  1. Đọc tệp hình ảnh thành một mảng byte.
  2. Tạo một thể hiện mới của MemoryStream bằng cách sử dụng đối tượng mảng byte.
  3. Tạo một bitmap mới bằng cách sử dụng lớp Bitmap với đối tượng MemoryStream.
  4. Cuối cùng, lưu ảnh bằng phương thức Save().

Mẫu mã sau đây cho biết cách tạo ảnh bitmap từ Byte Array bằng MemoryStream trong C#.

// Ví dụ mã này trình bày cách tạo một bitmap mới từ các byte luồng bộ nhớ trong C#.
// Tải hình ảnh và đọc tất cả các byte
var file = File.ReadAllBytes(@"C:\Files\Drawings\sample.jpg");

// Tạo dòng bộ nhớ
MemoryStream stream = new MemoryStream(file);

// Tạo một bitmap mới
Bitmap bitmap = new Bitmap(stream);

// Lưu các tập tin
bitmap.Save(@"C:\Files\Drawings\output.jpg");

C# Lưu Bitmap vào một tệp

Chúng tôi có thể lưu hình ảnh bitmap vào một tệp ở nhiều định dạng tệp được hỗ trợ khác nhau bằng cách thực hiện theo các bước đã đề cập trước đó. Tuy nhiên, chúng ta chỉ cần đề cập đến phần mở rộng định dạng tệp lưu mong muốn trong khi lưu tệp hình ảnh bằng phương thức Lưu (tên tệp chuỗi, định dạng ImageFormat) ở bước cuối cùng.

  • Lưu Bitmap dưới dạng tệp BMP
bitmap.Save(@"C:\Files\output.bmp", ImageFormat.Bmp);
  • Lưu Bitmap dưới dạng tệp PNG
bitmap.Save(@"C:\Files\output.png", ImageFormat.Png);
  • Lưu Bitmap dưới dạng tệp JPG
bitmap.Save(@"C:\Files\output.jpg", ImageFormat.Jpeg);
  • Lưu Bitmap dưới dạng tệp GIF
bitmap.Save(@"C:\Files\output.gif", ImageFormat.Gif);

C# Vẽ trên Bitmap

Chúng ta có thể vẽ các hình dạng và hình ảnh khác nhau trên một bitmap bằng cách làm theo các bước đã đề cập trước đó. Tuy nhiên, chúng ta chỉ cần sử dụng các phương pháp cụ thể của hình dạng để vẽ các hình dạng mong muốn.

Chúng ta có thể vẽ các hình sau bằng cách sử dụng các phương pháp cụ thể được cung cấp để vẽ trên bitmap:

  • Arc: Chúng ta có thể vẽ một Arc bằng phương pháp DrawArc().
  • Bezier: Chúng ta có thể vẽ một Bezier bằng phương pháp DrawBezier().
  • Một loạt các Bézier splines: Chúng ta có thể vẽ một loạt các Bezier splines bằng phương pháp DrawBeziers().
  • Đường cong: Chúng ta có thể vẽ một hình Cong bằng phương pháp DrawCurve().
  • ClosedCurve: Chúng ta có thể vẽ một đường cong khép kín bằng phương thức DrawClosedCurve().
  • Hình elip: Chúng ta có thể vẽ hình elip bằng phương thức DrawEllipse().
  • Đường kẻ: Chúng ta có thể vẽ Đường kẻ bằng phương thức DrawLine().
  • Một loạt Đường: Chúng ta có thể vẽ một loạt Đường bằng phương thức DrawLines().
  • Đường dẫn: Chúng ta có thể vẽ Đường dẫn bằng phương thức DrawPath().
  • Hình tròn: Chúng ta có thể vẽ Hình tròn bằng phương thức DrawPie().
  • Đa giác: Chúng ta có thể vẽ Đa giác bằng phương thức DrawPolygon().
  • Hình chữ nhật: Chúng ta có thể vẽ Hình chữ nhật bằng phương thức DrawRectangle().
  • Một loạt Hình chữ nhật: Chúng ta có thể vẽ một loạt Hình chữ nhật bằng phương thức DrawRectangles().

Chúng ta có thể vẽ các hình ảnh trên bitmap bằng các phương pháp sau:

  • Biểu tượng: Chúng ta có thể vẽ hình ảnh được biểu thị bằng Biểu tượng đã chỉ định trong khu vực được chỉ định bởi cấu trúc Hình chữ nhật bằng phương thức DrawIcon().
  • Hình ảnh: Chúng ta có thể vẽ bất kỳ Hình ảnh cụ thể nào bằng phương thức DrawImage().

C# Vẽ văn bản trên Bitmap

Chúng ta có thể vẽ bất kỳ chuỗi nào trên bitmap bằng cách làm theo các bước dưới đây:

  1. Đầu tiên, tạo một bitmap mới bằng cách sử dụng lớp Bitmap với kích thước đã chỉ định.
  2. Tiếp theo, tạo một đối tượng Đồ họa mới từ đối tượng Bitmap bằng phương thức FromImage().
  3. Sau đó, xác định một đối tượng lớp Phông chữ với họ phông chữ, kiểu dáng và kích thước mong muốn.
  4. Trong khi đó, khởi tạo một đối tượng SolidBrush với màu đã chỉ định.
  5. Sau đó, gọi phương thức DrawString() với các đối tượng text to show, Font và Brush làm đối số.
  6. Cuối cùng, lưu hình ảnh đầu ra bằng phương thức Save().

Mẫu mã sau đây cho biết cách vẽ văn bản trên ảnh bitmap trong C#.

// Ví dụ mã này trình bày cách vẽ văn bản trên một bitmap mới theo chương trình trong C#.
// Khởi tạo đối tượng Bitmap
Bitmap bitmap = new Bitmap(500,200);

// Tạo một đồ họa mới
Graphics graphics = Graphics.FromImage(bitmap);

// Khởi tạo phông chữ
var font = new Font(FontFamily.GenericSerif, 40f, FontStyle.Bold);

// Khởi tạo một Brush
var brush = new SolidBrush(Color.Red);

// Vẽ một hình chữ nhật
graphics.DrawString("Welcome to Bitmap!", font, brush, 10, 20);

// Lưu các tập tin
bitmap.Save(@"C:\Files\Drawings\output.png", ImageFormat.Png);
C# Vẽ văn bản trên Bitmap

C# Vẽ văn bản trên Bitmap

Điền vào Bitmap với Solid Color trong C#

Chúng ta có thể tô một bitmap bằng một màu đơn sắc bằng cách sử dụng một hình chữ nhật được tô và lưu nó vào một bitmap mới bằng cách thực hiện theo các bước dưới đây:

  1. Đầu tiên, tạo một bitmap mới bằng cách sử dụng lớp Bitmap với kích thước đã chỉ định.
  2. Tiếp theo, tạo một đối tượng Đồ họa mới từ đối tượng Bitmap bằng phương thức FromImage().
  3. Sau đó, khởi tạo một đối tượng lớp Rectangle với vị trí và kích thước đã chỉ định.
  4. Sau đó, gọi phương thức FillRectangle() với màu cọ và Hình chữ nhật.
  5. Cuối cùng, lưu hình ảnh đầu ra bằng phương thức Save().

Mẫu mã sau đây cho biết cách tô một bitmap bằng màu đồng nhất bằng cách sử dụng hình chữ nhật trong C#.

// Ví dụ mã này trình bày cách tạo một bitmap mới với hình chữ nhật được điền trong C#.
// Khởi tạo Bitmap với kích thước xác định
Bitmap bitmap = new Bitmap(500, 500);

// Tạo một đồ họa mới
Graphics graph = Graphics.FromImage(bitmap);

// Định nghĩa một hình chữ nhật
Rectangle ImageSize = new Rectangle(0, 0, 500, 500);

// Vẽ một hình chữ nhật đầy
graph.FillRectangle(Brushes.Gray, ImageSize);

// Lưu các tập tin
bitmap.Save(@"C:\Files\Drawings\output.png");
C# Vẽ trên Bitmap và Tô màu bằng Hình chữ nhật

C# Vẽ hình chữ nhật trên Bitmap và tô màu

Tải hình ảnh trong Bitmap bằng C#

Chúng tôi cũng có thể tải một hình ảnh hiện có trong một bitmap và lưu nó dưới dạng một bitmap mới bằng cách làm theo các bước dưới đây:

  1. Đầu tiên, tải một hình ảnh bằng lớp Bitmap.
  2. Tiếp theo, tạo một bitmap mới bằng cách sử dụng lớp Bitmap với kích thước được chỉ định.
  3. Sau đó, tạo một đối tượng Đồ họa mới từ đối tượng Bitmap mới được tạo bằng phương thức FromImage().
  4. Sau đó, gọi phương thức DrawImage() với tọa độ hình ảnh và vị trí làm đối số.
  5. Cuối cùng, lưu hình ảnh đầu ra bằng phương thức Save().

Mẫu mã sau đây cho biết cách tải hình ảnh trong ảnh bitmap bằng C#.

// Ví dụ mã này trình bày cách tải hình ảnh vào ảnh bitmap và lưu dưới dạng ảnh bitmap mới.
// Tải hình ảnh:
Bitmap image = new Bitmap(@"C:\Files\Drawings\sample.jpg");

// Khởi tạo Bitmap với kích thước xác định
Bitmap bitmap = new Bitmap(1000, 1000);

// Tạo một đồ họa mới
Graphics graphics = Graphics.FromImage(bitmap);

// Vẽ hình ảnh tại vị trí được chỉ định
graphics.DrawImage(image, 10, 10);

// Lưu các tập tin
bitmap.Save(@"C:\Files\Drawings\output.png");
Load-an-Image-in-Bitmap-using-CSharp

Tải hình ảnh trong Bitmap bằng C#

Cách thay đổi kích thước hình ảnh bằng Bitmap trong C#

Chúng tôi có thể tải và thay đổi kích thước một hình ảnh hiện có trong một bitmap và lưu nó dưới dạng một bitmap mới bằng cách làm theo các bước dưới đây:

  1. Tải một hình ảnh hiện có bằng lớp Bitmap.
  2. Tạo một bitmap mới bằng cách sử dụng lớp Bitmap với hình ảnh được tải và kích thước được chỉ định.
  3. Cuối cùng, lưu hình ảnh đầu ra bằng phương thức Save().

Mẫu mã sau đây cho biết cách thay đổi kích thước hình ảnh hiện có và lưu nó dưới dạng ảnh bitmap mới trong C#.

// Ví dụ mã này trình bày cách tạo thay đổi kích thước hình ảnh hiện có và tạo ảnh bitmap mới trong C#.
// Tải hình ảnh:
Bitmap image = new Bitmap(@"C:\Files\Drawings\sample.jpg");

// Tạo một bitmap mới bằng một nửa kích thước của hình ảnh đã tải:
Bitmap bitmap = new Bitmap(image, (int)(image.Width * 0.5), (int)(image.Height * 0.5));

// Lưu các tập tin
bitmap.Save(@"C:\Files\Drawings\output.jpg");
Cách thay đổi kích thước hình ảnh bằng Bitmap trong C#

Thay đổi kích thước hình ảnh hiện có bằng C#

Nhận giấy phép tạm thời miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử Aspose.Drawing for .NET mà không bị giới hạn đánh giá.

Phần kết luận

Trong bài viết này, chúng ta đã học cách:

  • tạo một bitmap mới;
  • vẽ hình chữ nhật, hình elip, v.v. trên bitmap;
  • tải một hình ảnh hiện có;
  • thay đổi kích thước một hình ảnh hiện có và tạo một bitmap mới với kích thước mới;
  • lưu hình ảnh Bitmap từ MemoryStream hoặc mảng byte vào một tệp;
  • đặt chiều rộng và chiều cao của bitmap trong C#.

Bên cạnh việc tạo một bitmap mới trong C#, bạn có thể tìm hiểu thêm về Aspose.Drawing for .NET bằng cách sử dụng tài liệu và khám phá các tính năng khác nhau được API hỗ trợ. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn hỗ trợ miễn phí của chúng tôi.

Xem thêm