Przytnij obrazy w C#

Edycja obrazu jest obecnie dość powszechna iw różnych przypadkach musimy manipulować obrazami, aby uzyskać pożądane rezultaty. Jako programista możesz zaimplementować funkcje edycji obrazu z poziomu tworzonych aplikacji. Niedawno omówiliśmy, jak programowo zmienić rozmiar, obrócić i przerzucić obrazy. Dzisiaj pokażemy, jak przycinać obrazy przy użyciu języka C# w aplikacjach .NET. Omówimy, jak wykonać kadrowanie obrazu za pomocą wartości przesunięcia lub prostokąta.

Interfejs API języka C# do przycinania obrazów — bezpłatne pobieranie

Do kadrowania obrazu w C# użyjemy Aspose.Imaging for .NET. Jest to bogaty w funkcje interfejs API do bezproblemowego manipulowania obrazami w popularnych formatach. Możesz pobrać interfejs API lub zainstalować go w swoich aplikacjach .NET za pomocą NuGet.

PM> Install-Package Aspose.Imaging

Przytnij obrazy w C#

Aspose.Imaging for .NET zapewnia dwa sposoby przycinania obrazu. W pierwszej metodzie musimy podać wartości przesunięcia w lewo, w prawo, górę i dół. Natomiast w drugiej metodzie definiujemy prostokąt, aby przyciąć określony obszar obrazu.

W poniższych sekcjach pokażemy, jak używać obu wyżej wymienionych metod do przycinania obrazów w języku C#.

Przytnij obrazy z wartościami Shift w C#

Poniżej przedstawiono kroki kadrowania obrazu przy użyciu wartości przesunięcia w języku C#.

  • Najpierw załaduj obraz do obiektu RasterImage za pomocą metody Image.Load().
  • Zachowaj obraz w pamięci podręcznej, aby uzyskać lepszą wydajność.
  • Zdefiniuj wartości przesunięcia w lewo, w prawo, górę i dół.
  • Przekaż wartości przesunięcia do metody RasterImage.Crop(), aby przyciąć obraz.
  • Zapisz wykadrowany obraz metodą RasterImage.Save().

Poniższy przykład kodu pokazuje, jak przyciąć obraz w języku C#.

// Załaduj obraz do przycięcia.
using (RasterImage rasterImage = (RasterImage)Image.Load("image.png"))
{
    // Przed kadrowaniem obraz należy zapisać w pamięci podręcznej, aby uzyskać lepszą wydajność.
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Zdefiniuj wartości przesunięcia dla wszystkich czterech stron.
    int leftShift = 10;
    int rightShift = 10;
    int topShift = 50;
    int bottomShift = 50;

    // Na podstawie wartości przesunięcia zastosuj kadrowanie obrazu. Metoda kadrowania przesunie granice obrazu w kierunku środka obrazu.
    rasterImage.Crop(leftShift, rightShift, topShift, bottomShift);

    // Zapisz przycięty obraz.
    rasterImage.Save("cropped.png");
}

Poniżej znajduje się obraz wejściowy, którego użyliśmy do przycięcia.

przytnij obraz w C#

Poniżej znajduje się wynikowy przycięty obraz.

kadrowanie obrazu w C#

Kadrowanie obrazu C# przy użyciu prostokąta

Możesz także zdefiniować prostokąt, aby przyciąć żądany obszar obrazu. Poniższe kroki przedstawiają kadrowanie obrazu za pomocą prostokąta w języku C#.

Poniższy przykładowy kod pokazuje, jak wykonać przycinanie obrazu za pomocą prostokąta w języku C#.

// Załaduj obraz.
using (RasterImage rasterImage = (RasterImage)Image.Load("image.png"))
{
    // Przed kadrowaniem obraz należy zapisać w pamięci podręcznej, aby uzyskać lepszą wydajność.
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Utwórz instancję klasy Rectangle o żądanym rozmiarze i przytnij obraz.
    Rectangle rectangle = new Rectangle(20, 20, 20, 20);             
    rasterImage.Crop(rectangle);

    // Zapisz przycięty obraz.
    rasterImage.Save("cropped.png");
}

Imaging Cropping API dla języka C# — Uzyskaj bezpłatną licencję

Możesz uzyskać bezpłatną tymczasową licencję i przycinać obrazy bez ograniczeń ewaluacyjnych.

Zbuduj swoją aplikację do przycinania obrazu

W tym artykule nauczyłeś się przycinać obrazy w języku C#. Pokazaliśmy kilka sposobów przycinania obrazu przy użyciu wartości przesunięcia lub prostokąta. Teraz możesz łatwo zbudować własną aplikację do przycinania obrazów lub rozszerzyć możliwości edycji obrazów w istniejącej aplikacji. Aby dowiedzieć się więcej o interfejsie API do edycji obrazów w języku C#, odwiedź dokumentację. Możesz także podzielić się z nami swoimi pytaniami za pośrednictwem naszego forum.

Zobacz też