Cắt ảnh C#

Làm việc với hình ảnh lập trình trong C# cho phép các nhà phát triển thực hiện nhiều thao tác khác nhau như thay đổi kích thước, xoay và cắt. Trong số các nhiệm vụ này, cắt là đặc biệt hữu ích khi bạn muốn trích xuất một khu vực cụ thể từ một hình ảnh hoặc loại bỏ các lề không mong muốn. Trong hướng dẫn này, chúng ta sẽ tập trung vào cách cắt hình ảnh trong C# sử dụng Conholdate.Total cho .NET.

Chúng tôi sẽ hướng dẫn bạn qua hai kỹ thuật cắt khác nhau, một kỹ thuật sử dụng giá trị shift để cắt hình ảnh từ tất cả các bên, và kỹ thuật khác bằng cách xác định một hình chữ nhật tùy chỉnh để cô lập một phần cụ thể của hình ảnh. Mỗi phần đều có các đoạn mã được tài liệu tốt và những thông tin thực tiễn cho các ứng dụng trong thế giới thực.

Tại sao cắt ảnh theo chương trình trong C#?

Có nhiều kịch bản mà việc cắt ảnh theo chương trình là hữu ích:

  • Tập trung vào Nội dung: Cắt xén cho phép bạn làm nổi bật một phần cụ thể của hình ảnh, làm cho nó lý tưởng cho ảnh hồ sơ, hình thu nhỏ hoặc quét tài liệu.

  • Xử lý hình ảnh tự động: Trong các ứng dụng liên quan đến chỉnh sửa hình ảnh hàng loạt hoặc nội dung do người dùng tải lên, tự động hóa quy trình cắt giảm quy trình làm việc và loại bỏ nỗ lực thủ công.

  • Tuân thủ và Quyền riêng tư: Cắt có thể được sử dụng để loại bỏ dữ liệu nhạy cảm hoặc không liên quan trước khi chia sẻ hình ảnh.

Cắt ảnh không chỉ là một điều chỉnh thẩm mỹ, mà còn là một phần quan trọng trong xử lý dữ liệu, thiết kế UX và hiệu suất hệ thống.

Cắt ảnh JPG PNG BMP - Cấu hình API .NET

Bạn có thể thiết lập Conholdate.Total for .NET một cách dễ dàng với lệnh cài đặt NuGet dưới đây:

Install-Package Conholdate.Total

Cắt ảnh bằng cách dịch các cạnh trong C#

Phương pháp đầu tiên cho thấy cách cắt một hình ảnh bằng cách dịch chuyển các cạnh của nó vào trong. Điều này đặc biệt hữu ích khi bạn muốn cắt các lề một cách đồng nhất hoặc không đồng nhất từ trên, dưới, trái và phải của hình ảnh.

// Load the image to be cropped.
using (RasterImage rasterImage = (RasterImage)Image.Load("image.png"))
{
    // Before cropping, the image should be cached for better performance.
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Define shift values for all four sides.
    int leftShift = 10;
    int rightShift = 10;
    int topShift = 50;
    int bottomShift = 50;

    // Based on the shift values, apply the cropping on image. Crop method will shift the image bounds toward the center of image.
    rasterImage.Crop(leftShift, rightShift, topShift, bottomShift);

    // Save cropped image.
    rasterImage.Save("cropped.png");
}

Trong ví dụ này, chúng ta tải một hình ảnh PNG và chỉ định số pixel cần loại bỏ từ mỗi bên. Phương pháp Crop tiện lợi điều chỉnh kích thước của hình ảnh vào trong, loại bỏ các đường viền không cần thiết trong khi vẫn giữ nguyên tính toàn vẹn của hình ảnh. Bằng cách sử dụng phương pháp này, bạn có thể đạt được việc cắt dựa trên cạnh nhất quán, lý tưởng cho các tài liệu quét, hình chụp màn hình và các đường viền hình ảnh.

Cắt hình ảnh bằng cách sử dụng hình chữ nhật đã xác định trong C#

Phương pháp thứ hai cung cấp độ chính xác cao hơn bằng cách cho phép bạn xác định khu vực chính xác để giữ lại bằng cách sử dụng ranh giới hình chữ nhật. Cách tiếp cận này là lý tưởng khi bạn biết tọa độ và kích thước của khu vực mong muốn trong hình ảnh.

// Load the image.
using (RasterImage rasterImage = (RasterImage)Image.Load("image.png"))
{
    // Before cropping, the image should be cached for better performance.
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Create an instance of Rectangle class with desired size and crop the image.
    Rectangle rectangle = new Rectangle(20, 20, 20, 20);
    rasterImage.Crop(rectangle);

    // Save cropped image.
    rasterImage.Save("cropped.png");
}

Phương pháp này đặc biệt hữu ích khi bạn cần tách biệt một phần cụ thể của hình ảnh, chẳng hạn như khu vực sản phẩm trong ảnh thương mại điện tử, một khối văn bản từ tài liệu quét, hoặc một vùng quan tâm trong một sơ đồ. Định nghĩa và áp dụng một hình chữ nhật như vậy vừa dễ hiểu vừa rất hiệu quả.

Giấy phép Đánh giá Miễn phí

Bạn có thể nhận được một giấy phép tạm thời miễn phí để đánh giá nhiều tính năng khác được cung cấp bởi API với đầy đủ khả năng của chúng.

Kết luận

Cắt ảnh trong C# không cần phải phức tạp. Dù bạn cần cắt bỏ các viền hay trích xuất một vùng cụ thể, bạn có thể hoàn thành công việc một cách nhanh chóng và chính xác. Với hỗ trợ cho cả cắt dựa trên dịch chuyển và cắt dựa trên hình chữ nhật, bạn có sự linh hoạt để giải quyết một loạt các trường hợp sử dụng trong thế giới thực, từ hình ảnh tài liệu đến cá nhân hóa nội dung.

Bằng cách tích hợp những khả năng này vào ứng dụng .NET của bạn, bạn có thể tự động hóa các nhiệm vụ chỉnh sửa hình ảnh, nâng cao trải nghiệm người dùng và duy trì định dạng nhất quán trên các tập dữ liệu lớn.

See Also