Vẽ hình trong C#

Người ta thường yêu cầu tạo các đối tượng đồ họa khác nhau bằng cách vẽ các hình bao gồm hình tròn, đường thẳng, hình chữ nhật, v.v. Những hình này cũng có thể được sử dụng để chú thích cho hình ảnh. Trong bài viết này, bạn sẽ học cách vẽ các hình dạng khác nhau bằng lập trình trong C#. Chúng tôi sẽ trình bày cách vẽ các đường thẳng, hình elip, hình cung và hình chữ nhật và tạo hình ảnh của chúng.

API C# để vẽ hình dạng - Tải xuống miễn phí

Để vẽ các loại hình dạng khác nhau, chúng ta sẽ sử dụng Aspose.Imaging for .NET. Nó là một API chỉnh sửa hình ảnh tuyệt vời cung cấp nhiều tính năng để thao tác với hình ảnh và tạo bản vẽ. Bạn có thể tải xuống API hoặc cài đặt nó từ NuGet.

PM> Install-Package Aspose.Imaging

Vẽ một đường bằng C#

Sau đây là các bước để vẽ một đường thẳng trong C#.

  • Đầu tiên, tạo một đối tượng thuộc lớp BmpOptions và đặt bit cho mỗi pixel bằng thuộc tính BitsPerPixel.
  • Sau đó, gán StreamSource bằng thuộc tính Source.
  • Tạo một hình ảnh mới và khởi tạo nó với đối tượng BmpOptions và chiều cao và chiều rộng của hình ảnh.
  • Tạo một đối tượng thuộc lớp Graphics và khởi tạo nó với đối tượng Image.
  • Xóa bề mặt của hình ảnh bằng một số màu bằng phương pháp Graphics.Clear().
  • Vẽ một đường bằng phương thức Graphics.DrawLine(Pen, int, int, int, int).
  • Tạo và lưu hình ảnh bằng phương pháp Image.Save().

Mẫu mã sau đây cho biết cách vẽ một đường thẳng trong C#.

// Tạo BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;

// Xác định thuộc tính nguồn cho phiên bản BmpOptions
bmpCreateOptions.Source = new StreamSource();

// Tạo một thể hiện của Image và gọi phương thức tạo bằng cách chuyển
// đối tượng bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);

// Tạo và khởi tạo một thể hiện của lớp Graphics
Graphics graphic = new Graphics(image);

// Xóa bề mặt hình ảnh với màu Trắng
graphic.Clear(Color.White);

// Vẽ một đường chấm chấm bằng cách chỉ định đối tượng Bút có màu xanh lam và
// tọa độ điểm
graphic.DrawLine(new Pen(Color.Blue, 3), 18, 18, 200, 200);
graphic.DrawLine(new Pen(Color.Blue, 3), 18, 200, 200, 18);

// Vẽ một đường liên tục bằng cách chỉ định đối tượng Pen có Solid
// Brush với màu đỏ và cấu trúc hai điểm
graphic.DrawLine(new Pen(new SolidBrush(Color.Red), 3),
        new Point(18, 18), new Point(18, 200));

// Vẽ một đường liên tục bằng cách chỉ định đối tượng Pen có Solid
// Brush với màu trắng và cấu trúc hai điểm
graphic.DrawLine(new Pen(new SolidBrush(Color.Orange), 3),
        new Point(200, 18), new Point(18, 18));

// Lưu tất cả các thay đổi
image.Save("draw_lines.bmp");

Sau đây là đầu ra của mẫu mã trên.

vẽ đường thẳng trong C#

Vẽ hình elip bằng C#

Sau đây là các bước để vẽ hình elip trong C#.

  • Đầu tiên, tạo một đối tượng thuộc lớp BmpOptions và đặt bit cho mỗi pixel bằng thuộc tính BitsPerPixel.
  • Sau đó, gán StreamSource bằng thuộc tính Source.
  • Tạo một hình ảnh mới và khởi tạo nó với đối tượng BmpOptions và chiều cao và chiều rộng của hình ảnh.
  • Tạo một đối tượng thuộc lớp Graphics và khởi tạo nó với đối tượng Image.
  • Xóa bề mặt của hình ảnh bằng một số màu bằng phương pháp Graphics.Clear().
  • Vẽ hình elip bằng phương pháp Graphics.DrawEllipse(Pen, Rectangle).
  • Tạo và lưu hình ảnh bằng phương pháp Image.Save().

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

// Tạo BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;

// Xác định thuộc tính nguồn cho phiên bản BmpOptions
bmpCreateOptions.Source = new StreamSource();

// Tạo một thể hiện của Image và gọi phương thức tạo bằng cách chuyển
// đối tượng bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);

// Tạo và khởi tạo một thể hiện của lớp Graphics
Graphics graphic = new Graphics(image);

// Xóa bề mặt hình ảnh với màu Trắng
graphic.Clear(Color.White);

// Vẽ một hình elip có chấm bằng cách chỉ định đối tượng Bút có màu đỏ
// màu sắc và hình chữ nhật xung quanh
graphic.DrawEllipse(new Pen(Color.Red, 3), new Rectangle(60, 40, 70, 120));

// Vẽ một hình elip liên tục bằng cách chỉ định đối tượng Pen có
// solid brush with blue màu sắc và hình chữ nhật xung quanh
graphic.DrawEllipse(new Pen(new SolidBrush(Color.Blue), 3),
        new Rectangle(40, 60, 120, 70));

// Lưu tất cả các thay đổi
image.Save("draw_ellipse.bmp");

Sau đây là đầu ra của mẫu mã trên.

vẽ hình elip trong C#

Vẽ cung bằng C#

Sau đây là các bước để vẽ một cung trong C#.

Mẫu mã sau đây cho biết cách vẽ một cung trên hình ảnh trong C#.

// Tạo BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;

// Xác định thuộc tính nguồn cho phiên bản BmpOptions
bmpCreateOptions.Source = new StreamSource();

// Tạo một thể hiện của Image và gọi phương thức tạo bằng cách chuyển
// đối tượng bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);

// Tạo và khởi tạo một thể hiện của lớp Graphics
Graphics graphic = new Graphics(image);

// Xóa bề mặt hình ảnh với màu Trắng
graphic.Clear(Color.White);

// Vẽ hình cung chấm bằng cách chỉ định đối tượng Pen có màu đỏ đen
// màu sắc và tọa độ, chiều cao, chiều rộng, góc bắt đầu và kết thúc
int width = 200;
int height = 300;
int startAngle = 45;
int sweepAngle = 270;

// Vẽ cung ra màn hình
graphic.DrawArc(new Pen(Color.Black, 3), 0, 0, width, height, startAngle, sweepAngle);

// Lưu tất cả các thay đổi
image.Save("draw_arc.bmp");

Sau đây là đầu ra của mẫu mã trên.

vẽ cung trong C#

Vẽ hình chữ nhật bằng C#

Sau đây là các bước để vẽ hình chữ nhật trong C#.

  • Đầu tiên, tạo một đối tượng thuộc lớp BmpOptions và đặt bit cho mỗi pixel bằng thuộc tính BitsPerPixel.
  • Sau đó, gán StreamSource bằng thuộc tính Source.
  • Tạo một hình ảnh mới và khởi tạo nó với đối tượng BmpOptions và chiều cao và chiều rộng của hình ảnh.
  • Tạo một đối tượng thuộc lớp Graphics và khởi tạo nó với đối tượng Image.
  • Xóa bề mặt của hình ảnh bằng một số màu bằng phương pháp Graphics.Clear().
  • Vẽ hình chữ nhật bằng phương pháp Graphics.DrawRectangle(Pen, Rectangle).
  • Tạo và lưu hình ảnh bằng phương pháp Image.Save().

Mẫu mã sau đây cho biết cách vẽ hình chữ nhật trên hình ảnh trong C#.

// Tạo BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;

// Xác định thuộc tính nguồn cho phiên bản BmpOptions
bmpCreateOptions.Source = new StreamSource();

// Tạo một thể hiện của Image và gọi phương thức tạo bằng cách chuyển
// đối tượng bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);

// Tạo và khởi tạo một thể hiện của lớp Graphics
Graphics graphic = new Graphics(image);

// Xóa bề mặt hình ảnh với màu Trắng
graphic.Clear(Color.White);

// Vẽ một hình chữ nhật chấm bằng cách chỉ định đối tượng Bút có màu đỏ
// màu sắc và cấu trúc hình chữ nhật
graphic.DrawRectangle(new Pen(Color.Red, 3),
        new Rectangle(60, 40, 70, 120));

// Vẽ một hình chữ nhật liên tục bằng cách chỉ định đối tượng Pen có
// solid brush with blue màu sắc và cấu trúc hình chữ nhật
graphic.DrawRectangle(new Pen(new SolidBrush(Color.Blue), 3),
        new Rectangle(40, 60, 120, 70));

// Lưu tất cả các thay đổi
image.Save("draw_reactangle.bmp");

Sau đây là đầu ra của mẫu mã trên.

vẽ hình chữ nhật trong C#

API vẽ hình ảnh C# .NET - Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí và vẽ các hình mà không bị giới hạn về đánh giá.

Sự kết luận

Trong bài viết này, bạn đã học cách vẽ hình trong C#. Chúng tôi đã giới thiệu cách vẽ các đường thẳng, hình elip, hình cung và hình chữ nhật trên hình ảnh theo chương trình. Bạn có thể dễ dàng tích hợp các mẫu mã được cung cấp vào các ứng dụng C# của mình.

Đọc thêm

Bạn có thể khám phá thêm về API xử lý hình ảnh .NET bằng cách sử dụng tài liệu. Ngoài ra, bạn có thể chia sẻ thắc mắc của mình với chúng tôi qua diễn đàn của chúng tôi.

Xem thêm