Trộn Alpha trong C#

Đồ họa máy tính, đặc biệt là trong trò chơi, đòi hỏi rất nhiều sự chú ý đến từng chi tiết. Mọi pixel đều có giá trị và không được có hiệu ứng hình ảnh chói tai. Đây là lúc sự pha trộn alpha phát huy tác dụng. Hầu như tất cả các công cụ đồ họa ngày nay đều sử dụng một số dạng pha trộn alpha để tạo ra hình ảnh thực tế hơn. Để chuyển đổi mượt mà giữa cả hai đối tượng, các màu tương ứng của hai đối tượng được kết hợp và chồng lên nhau một phần. Trong bài viết này, chúng ta sẽ học cách thực hiện trộn alpha trong C#.

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

  1. Alpha Blending là gì
  2. API pha trộn C# Alpha
  3. Cách triển khai Alpha Blending
  4. Chế độ tổng hợp trong Alpha Blending

Alpha Blending là gì?

Pha trộn alpha là một kỹ thuật để kết hợp hai màu khác nhau, hoặc mức độ trong suốt, bằng cách sử dụng độ mờ của mỗi màu để tạo ra một phần ba. Nó cho phép chuyển đổi dần dần và pha trộn màu sắc trong hình ảnh của bạn. Pha trộn alpha thường được sử dụng cho các hiệu ứng nền và trong suốt.

Trong đồ họa máy tính, hòa trộn alpha là quá trình kết hợp hai hình ảnh để chúng xuất hiện như một. Kết quả là một hình ảnh duy nhất trong đó một số khu vực xuất hiện trong suốt. Thuật toán hoạt động bằng cách tính toán lượng trong suốt giữa các màu hai pixel. Nó kết hợp hai hình ảnh mà không chạm vào bất kỳ pixel nào.

C# Alpha Blending API - Tải xuống miễn phí

Để triển khai trộn alpha trong C#, 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 lập 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 DLL của API hoặc cài đặt nó bằng NuGet.

PM> Install-Package Aspose.Drawing

Triển khai Alpha Blending bằng C#

Cách phổ biến nhất để thực hiện hòa trộn Alpha trong C# là sử dụng phương thức Color.FromArgb(). Chúng tôi có thể triển khai pha trộn alpha theo chương trình bằng cách làm theo các bước dưới đây:

  1. Đầu tiên, tạo một thể hiện của lớp Bitmap.
  2. Tiếp theo, tạo đối tượng lớp Graphics bằng phương thức Color.FromArgb() với tham số kênh alpha.
  3. Sau đó, xác định một đối tượng lớp SolidBrush với màu sắc và kích thước được chỉ định.
  4. Sau đó, gọi phương thức FillEllipse() để vẽ một hình elip được tô đầy.
  5. Lặp lại các bước trên để thêm nhiều hình elip chồng lên nhau với các màu khác nhau để tạo ra các màu mới.
  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 thấy cách triển khai trộn alpha trong C#.

// Ví dụ mã này trình bày cách triển khai trộn alpha trong C#.
// Tạo một bản đồ bit
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Khởi tạo đồ họa
Graphics graphics = Graphics.FromImage(bitmap);

// Xác định bàn chải màu
var solidBrush1 = new SolidBrush(Color.FromArgb(128, 255, 0, 0));
var solidBrush2 = new SolidBrush(Color.FromArgb(128, 0, 255, 0));
var solidBrush3 = new SolidBrush(Color.FromArgb(128, 0, 0, 255));

// Vẽ dấu ba chấm
graphics.FillEllipse(solidBrush1, 300, 100, 400, 400);
graphics.FillEllipse(solidBrush2, 200, 300, 400, 400);
graphics.FillEllipse(solidBrush3, 400, 300, 400, 400);

// Lưu bitmap
bitmap.Save(@"C:\Files\AlphaBlending.png");
Triển khai Alpha Blending bằng C#

Triển khai Alpha Blending bằng C#

Chế độ tổng hợp trong Alpha Blending sử dụng C#

Chúng tôi cũng có thể sử dụng các chế độ tổng hợp để kiểm soát sự pha trộn alpha bằng cách làm theo các bước dưới đây:

  1. Đầu tiên, tạo một thể hiện của lớp Bitmap.
  2. Tiếp theo, tạo đối tượng lớp Graphics bằng phương thức Color.FromArgb() với tham số kênh alpha.
  3. Sau đó, xác định một đối tượng lớp SolidBrush với màu sắc và kích thước được chỉ định.
  4. Tiếp theo, chỉ định CompositingMode và CompositingQuality cho đối tượng Graphics.
  5. Sau đó, gọi phương thức FillEllipse() để vẽ một hình elip được tô đầy.
  6. Lặp lại các bước trên để thêm nhiều hình elip chồng lên nhau với các màu khác nhau để tạo ra các màu mới.
  7. Cuối cùng, lưu hình ảnh đầu ra bằng phương thức Save().

Mẫu mã sau đây cho thấy cách sử dụng chế độ compsite để kiểm soát việc trộn alpha trong C#.

// Ví dụ mã này trình bày cách triển khai trộn alpha trong C#.
// Tạo một bản đồ bit
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Khởi tạo đồ họa
Graphics graphics = Graphics.FromImage(bitmap);

// Xác định bàn chải màu
var solidBrush1 = new SolidBrush(Color.FromArgb(128, 255, 0, 0));
var solidBrush2 = new SolidBrush(Color.FromArgb(128, 0, 255, 0));
var solidBrush3 = new SolidBrush(Color.FromArgb(128, 0, 0, 255));

// Đặt chế độ tổng hợp cho các hình elip chồng chéo,
// màu sắc của hình elip không bị pha trộn.
graphics.CompositingMode = CompositingMode.SourceCopy;

// màu sắc của các hình elip được pha trộn với nhau.
//Graphics.CompositingMode = CompositingMode.SourceOver;

// Đặt chất lượng tổng hợp của đối tượng Đồ họa.
graphics.CompositingQuality = CompositingQuality.GammaCorrected;

// Vẽ dấu ba chấm
graphics.FillEllipse(solidBrush1, 300, 100, 400, 400);
graphics.FillEllipse(solidBrush2, 200, 300, 400, 400);
graphics.FillEllipse(solidBrush3, 400, 300, 400, 400);

// Lưu bitmap
bitmap.Save(@"C:\Files\AlphaBlending_SourceOver.png");
SourceCopy Compsite Mode trong Alpha Blending sử dụng C#

SourceCopy Compsite Mode trong Alpha Blending sử dụng C#

Chúng ta cũng có thể sử dụng chế độ compsite SourceOver bằng đoạn mã sau ở bước # 4.

graphics.CompositingMode = CompositingMode.SourceOver;
Chế độ SourceOver Compsite trong Alpha Blending sử dụng C#

Chế độ SourceOver Compsite trong Alpha Blending sử dụ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 cho .NET mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, chúng ta đã học cách triển khai kỹ thuật trộn alpha theo lập trình trong C#. Bên cạnh đó, 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