Chủ đề này đề cập đến cách hợp nhất photos trong C#. Nó bao gồm cấu hình môi trường, quy trình từng bước và đoạn mã có thể chạy được để phát triển trình ghép ảnh trong C#. Bạn có thể áp dụng thông tin này để làm việc với tính năng này trong bất kỳ môi trường nào được .NET hỗ trợ trong các hệ điều hành khác nhau.
Các bước để hợp nhất ảnh trong C#
- Thiết lập môi trường để hoạt động với Aspose.Imaging for .NET bằng plugin trình quản lý gói NuGet
- Tạo danh sách hình ảnh và lấy kích thước của hình ảnh kết quả
- Kết hợp hình ảnh thành một hình ảnh mới và tạo nguồn đầu ra
- Đặt các thuộc tính khác nhau bằng cách sử dụng đối tượng lớp JpegOptions
- Xuất hình ảnh đã hợp nhất bằng lớp JpegImage
Các bước này tóm tắt toàn bộ quá trình kết hợp ảnh trong C#. Trước hết, hãy tạo danh sách nhiều ảnh để ghép thành một ảnh. Do đó, hãy tạo một ảnh mới và hiển thị nó thành ảnh đầu ra trước khi lưu nó vào đĩa hoặc luồng tùy theo nhu cầu của bạn.
Mã để hợp nhất ảnh trong C#
using System; | |
using System.Collections.Generic; | |
using System.IO; | |
using System.Linq; | |
using Aspose.Imaging; | |
using Aspose.Imaging.ImageOptions; | |
using Aspose.Imaging.Sources; | |
class Program | |
{ | |
static void Main(string[] args) // Merge images into one image in C# | |
{ | |
// Set PDF license | |
new Aspose.Imaging.License().SetLicense("License.lic"); | |
// Create a list of images | |
string[] imagePaths = { "picture1.jpg", "picture2.jpg", "picture3.jpg" }; | |
// Get resulting image's size | |
List<Aspose.Imaging.Size> imageSizes = new List<Aspose.Imaging.Size>(); | |
foreach (string imagePath in imagePaths) | |
{ | |
using (RasterImage image = (RasterImage)Aspose.Imaging.Image.Load(imagePath)) | |
{ | |
imageSizes.Add(image.Size); | |
} | |
} | |
int newWidth = imageSizes.Max(size => size.Width); | |
int newHeight = imageSizes.Sum(size => size.Height); | |
// Combine images into new one | |
using (MemoryStream memoryStream = new MemoryStream()) | |
{ | |
// Create output source | |
StreamSource outputStreamSource = new StreamSource(memoryStream); | |
// Create jpeg options | |
JpegOptions options = new JpegOptions() | |
{ Quality = 100, Source = outputStreamSource }; | |
// Create output image | |
using (Aspose.Imaging.FileFormats.Jpeg.JpegImage newImage = | |
(Aspose.Imaging.FileFormats.Jpeg.JpegImage)Aspose.Imaging.Image.Create(options, newWidth, newHeight)) | |
{ | |
int stitchedHeight = 0; | |
// Merge images | |
foreach (string imagePath in imagePaths) | |
{ | |
using (RasterImage image = (RasterImage)Aspose.Imaging.Image.Load(imagePath)) | |
{ | |
Aspose.Imaging.Rectangle bounds = new Aspose.Imaging.Rectangle(0, stitchedHeight, image.Width, image.Height); | |
newImage.SaveArgb32Pixels(bounds, image.LoadArgb32Pixels(image.Bounds)); | |
stitchedHeight += image.Height; | |
} | |
} | |
// Save the merged image | |
newImage.Save("merged-image.jpg"); | |
} | |
} | |
System.Console.WriteLine("Done"); | |
} | |
} |
Đoạn mã này đủ để phát triển một bộ kết hợp hình ảnh trong C#. Nó hoạt động với lớp JpegImage để tạo hình ảnh đầu ra trong khi tính toán kích thước hình ảnh của ảnh nguồn. Sau đó, nó tiến hành tạo một hình chữ nhật và lưu hình ảnh đầu ra đã hợp nhất bằng phương thức Save. Hơn nữa, bạn có thể tùy chỉnh một số thuộc tính của hình ảnh đầu ra với lớp JpegOptions như kiểu nén, chất lượng, loại màu, đơn vị độ phân giải, v.v. theo yêu cầu của bạn.
Trong bài viết này, chúng ta đã tìm hiểu quy trình thực hiện hợp nhất hình ảnh trong C#. Nếu bạn muốn xoay hình ảnh, hãy đọc bài viết trên cách xoay hình ảnh trong C#.