Crop Images C#

Praca z obrazami programowo w C# umożliwia deweloperom przeprowadzanie różnych manipulacji, takich jak zmiana rozmiaru, obracanie i przycinanie. Wśród tych zadań, przycinanie jest szczególnie przydatne, gdy chcesz wydobyć określony obszar z obrazu lub usunąć niechciane marginesy. W tym przewodniku skoncentrujemy się na tym, jak przycinać obrazy w C# przy użyciu Conholdate.Total dla .NET.

Przeprowadzimy cię przez dwie różne techniki przycinania, jedno używając wartości przesunięcia do przycięcia obrazu ze wszystkich stron, a drugie definiując niestandardowy prostokąt w celu wyizolowania konkretnej części obrazu. Każda sekcja zawiera dobrze udokumentowane fragmenty kodu i praktyczne spostrzeżenia dla rzeczywistych zastosowań.

Dlaczego przycinać obrazy programowo w C#?

Istnieje kilka scenariuszy, w których programowe przycinanie obrazów jest korzystne:

  • Skup się na treści: Przycinanie pozwala na wyróżnienie konkretnej części obrazu, co czyni je idealnym do zdjęć profilowych, miniatur oraz skanów dokumentów.

  • Automatyczne przetwarzanie obrazów: W zastosowaniach związanych z masową edycją obrazów lub treści przesyłanych przez użytkowników, automatyzacja procesu przycinania usprawnia przepływy pracy i eliminować manualny wysiłek.

  • Zgodność i prywatność: Przycinanie można wykorzystać do usunięcia wrażliwych lub nieistotnych danych przed udostępnieniem obrazów.

Przycinanie to nie tylko estetyczna korekta, ale także kluczowa część przetwarzania danych, projektowania UX i wydajności systemu.

Przycinanie obrazów JPG PNG BMP - konfiguracja API .NET

Możesz łatwo skonfigurować Conholdate.Total for .NET za pomocą poniższego polecenia instalacji NuGet:

Install-Package Conholdate.Total

Przycinanie obrazów poprzez przesuwanie boków w C#

Pierwsza metoda pokazuje, jak przyciąć obraz, przesuwając jego granice do wewnątrz. Jest to szczególnie przydatne, gdy chcesz jednorodnie lub asymetrycznie przyciąć marginesy z góry, dołu, lewej i prawej strony obrazu.

// 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");
}

W tym przykładzie ładujemy obraz PNG i określamy liczbę pikseli do usunięcia z każdej strony. Metoda Crop wygodnie dostosowuje wymiary obrazu do wewnątrz, eliminując zbędne ramki, zachowując integralność obrazu. Korzystając z tej metody, można osiągnąć spójne, oparte na krawędziach przycinanie, idealne do zeskanowanych dokumentów, zrzutów ekranu i ramek obrazów.

Przycinanie obrazów za pomocą zdefiniowanego prostokąta w C#

Druga metoda oferuje większą precyzję, pozwalając na zdefiniowanie dokładnego obszaru do zachowania za pomocą prostokątnej granicy. Takie podejście jest idealne, gdy znasz współrzędne i rozmiar pożądanego regionu w obrazie.

// 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");
}

Ta metoda jest szczególnie przydatna, gdy musisz wyizolować konkretną sekcję obrazu, taką jak obszar produktu na zdjęciu ecommerce, blok tekstu z zeskanowanego dokumentu lub obszar zainteresowania w diagramie. Definiowanie i stosowanie takiego prostokąta jest zarówno intuicyjne, jak i niezwykle efektywne.

Bezpłatna licencja oceny

Możesz uzyskać darmową tymczasową licencję, aby ocenić wiele innych funkcji oferowanych przez API w pełni.

Wnioski

Przycinanie obrazów w C# nie musi być skomplikowane. Niezależnie od tego, czy musisz przyciąć krawędzie, czy wyodrębnić konkretny obszar, możesz wykonać zadanie szybko i dokładnie. Z obsługą zarówno przycinania opartego na przesunięciu, jak i opartego na prostokącie, masz elastyczność, aby zaspokoić szeroki zakres rzeczywistych zastosowań, od obrazowania dokumentów po personalizację treści.

Integrując te możliwości w swoich aplikacjach .NET, możesz zautomatyzować zadania edycji obrazów, poprawić doświadczenia użytkowników oraz utrzymać spójne formatowanie w dużych zbiorach danych.

Zobacz także