Chúng tôi thường nhận được hình ảnh với kích thước không đáp ứng yêu cầu của chúng tôi, do đó, chúng tôi phải thay đổi kích thước chúng cho phù hợp. Trong bài viết này, bạn sẽ tìm hiểu cách thay đổi kích thước hình ảnh trong C# từ bên trong các ứng dụng .NET của bạn. Hơn nữa, với sự trợ giúp của các mẫu mã C#, chúng tôi sẽ trình bày cách thay đổi kích thước hình ảnh raster và vector.
- API thay đổi kích thước hình ảnh C#
- Thay đổi kích thước hình ảnh Raster
- Thay đổi kích thước hình ảnh theo tỷ lệ
- Thay đổi kích thước hình ảnh vector
C# API để thay đổi kích thước hình ảnh - Tải xuống miễn phí
Để thay đổi kích thước hình ảnh. chúng tôi sẽ sử dụng Aspose.Imaging for .NET. Nó là một API xử lý hình ảnh mạnh mẽ để thao tác với nhiều loại hình ảnh raster và vector khác nhau. Bạn có thể tải xuống DLL của API hoặc cài đặt nó qua NuGet.
PM> Install-Package Aspose.Imaging
Thay đổi kích thước hình ảnh Raster trong C#
Có hai phương pháp để thay đổi kích thước hình ảnh raster (PNG, GIF, JPEG, v.v.): thay đổi kích thước đơn giản và thay đổi kích thước bằng cách sử dụng loại thay đổi kích thước. Trong thay đổi kích thước đơn giản, hình ảnh được thay đổi kích thước bằng cách cung cấp chiều cao và chiều rộng. Trong khi, phương pháp thứ hai sử dụng các kỹ thuật thay đổi kích thước khác nhau. Các phần sau đây trình bày cách thay đổi kích thước hình ảnh bằng cách sử dụng từng phương pháp nêu trên.
Thay đổi kích thước hình ảnh đơn giản trong C#
Sau đây là các bước để thay đổi kích thước hình ảnh trong C#.
- Đầu tiên, tải tệp hình ảnh bằng lớp Hình ảnh.
- Sau đó, thay đổi kích thước hình ảnh bằng cách gọi phương thức Image.Resize (Int32, Int32).
- Cuối cùng, lưu hình ảnh đã thay đổi kích thước bằng phương thức Image.Save (string).
Mẫu mã sau đây cho thấy cách thay đổi kích thước hình ảnh trong các ứng dụng .NET.
// Tải hình ảnh
using (Image image = Image.Load("aspose-logo.jpg"))
{
// Thay đổi kích thước hình ảnh và lưu hình ảnh đã thay đổi kích thước
image.Resize(300, 300);
image.Save("SimpleResizing_out.jpg");
}
C# Thay đổi kích thước hình ảnh với một loại thay đổi kích thước
Enum ResizeType được sử dụng để chỉ định các kỹ thuật thay đổi kích thước mà bạn có thể sử dụng theo yêu cầu của mình. Danh sách đầy đủ các loại thay đổi kích thước được hỗ trợ có sẵn tại đây. Sau đây là các bước để thay đổi kích thước hình ảnh bằng kỹ thuật thay đổi kích thước cụ thể.
- Đầu tiên, tải hình ảnh bằng lớp Hình ảnh.
- Sau đó, thay đổi kích thước hình ảnh bằng cách gọi phương thức Image.Resize (Int32, Int32, ResizeType).
- Cuối cùng, lưu hình ảnh đã thay đổi kích thước bằng phương thức Image.Save (string).
Mẫu mã sau đây thay đổi kích thước hình ảnh bằng cách sử dụng một kỹ thuật thay đổi kích thước cụ thể.
// Tải hình ảnh
using (Image image = Image.Load("aspose-logo.jpg"))
{
// Thay đổi kích thước hình ảnh và lưu hình ảnh đã thay đổi kích thước
image.Resize(300, 300, ResizeType.LanczosResample);
image.Save("SimpleResizing_out.jpg");
}
Thay đổi kích thước hình ảnh theo tỷ lệ trong C#
Thay đổi kích thước hình ảnh bằng cách chỉ định chiều cao và chiều rộng có thể dẫn đến hình ảnh bị thu nhỏ hoặc được chia tỷ lệ. Do đó, bạn phải tính toán tỷ lệ khung hình theo cách thủ công. Tuy nhiên, bất kỳ tính toán sai nào về tỷ lệ cỡ ảnh có thể dẫn đến hình ảnh bị kéo giãn. Để tránh những vấn đề như vậy, bạn có thể sử dụng thay đổi kích thước theo tỷ lệ. Sau đây là các bước để đạt được điều này.
- Đầu tiên, tải tệp hình ảnh bằng lớp Hình ảnh.
- Sau đó, lưu dữ liệu hình ảnh vào bộ nhớ cache bằng phương thức Image.CacheData().
- Chỉ định chiều cao và chiều rộng mới của hình ảnh.
- Tính toán các giá trị tỷ lệ bằng phương pháp Image.ResizeWidthProportionally (Int32) và Image.ResizeHeightProportionally (Int32).
- Cuối cùng, lưu hình ảnh đã thay đổi kích thước bằng phương thức Image.Save (string).
Trong trường hợp bạn muốn sử dụng bất kỳ kiểu thay đổi kích thước cụ thể nào trong khi thay đổi kích thước hình ảnh theo tỷ lệ, hãy sử dụng các phương pháp quá tải Image.ResizeWidthProportionally (Int32, ResizeType) và Image.ResizeHeightProportionally (Int32, ResizeType).
Mẫu mã sau đây cho thấy cách thay đổi kích thước hình ảnh theo tỷ lệ bằng C#.
// Tải hình ảnh
using (Image image = Image.Load("aspose-logo.png"))
{
// Dữ liệu hình ảnh vào bộ nhớ đệm
if (!image.IsCached)
{
image.CacheData();
}
// Chỉ định chiều rộng và chiều cao
int newWidth = image.Width / 2;
image.ResizeWidthProportionally(newWidth);
int newHeight = image.Height / 2;
image.ResizeHeightProportionally(newHeight);
// Lưu hình ảnh
image.Save("ResizeImageProportionally_out.png");
}
Thay đổi kích thước hình ảnh vectơ trong C#
Aspose.Imaging for .NET cũng cho phép bạn thay đổi kích thước ảnh vector và lưu chúng ở định dạng ảnh raster. Mẫu mã sau đây cho thấy cách thay đổi kích thước hình ảnh SVG và lưu đầu ra ở định dạng PNG.
// Tải hình ảnh
using (Image image = Image.Load("image.svg"))
{
// Thay đổi kích thước hình ảnh dưới dạng PNG
image.Resize(image.Width * 10,image.Height * 15);
image.Save("Logotype_10_15.png", new PngOptions()
{
VectorRasterizationOptions = new SvgRasterizationOptions()
});
}
API thay đổi kích thước hình ảnh C# - 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í để thay đổi kích thước hình ảnh mà không bị giới hạn đánh giá.
Sự kết luận
Trong bài viết này, bạn đã học cách thay đổi kích thước hình ảnh theo cách lập trình bằng C#. Hơn nữa, các mẫu mã đã chứng minh cách thực hiện thay đổi kích thước hình ảnh hoặc thay đổi kích thước đơn giản bằng cách sử dụng một loại cụ thể. Chúng tôi cũng đã đề cập đến cách tránh tính toán thủ công tỷ lệ khung hình trong khi thay đổi kích thước hình ảnh. Ngoài ra, việc thay đổi kích thước của hình ảnh vector cũng được thảo luận ở phần cuối. Bên cạnh đó, bạn có thể khám phá thêm về API xử lý ảnh .NET bằng cách sử dụng tài liệu. Ngoài ra, bạn có thể tải xuống gói mẫu mã nguồn hoàn chỉnh từ GitHub. Trong trường hợp có bất kỳ thắc mắc nào, bạn có thể liên hệ với chúng tôi trên diễn đàn của chúng tôi.