
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.