
JPEG lub JPG to jeden z najczęściej używanych formatów obrazów do przechowywania obrazów i zdjęć. W niektórych przypadkach z różnych powodów może być konieczne przycięcie lub obrócenie obrazów. W tym artykule dowiemy się, jak przycinać i zmieniać rozmiar obrazów JPEG za pomocą języka C#.
W tym artykule zostaną omówione następujące tematy:
- API obrazu C# do przycinania i zmiany rozmiaru plików JPEG
- Przytnij obrazy JPEG za pomocą C#
- Przytnij obrazy do określonego rozmiaru w C#
- Zmień rozmiar obrazów JPEG w C#
- Zmień rozmiar obrazów JPEG proporcjonalnie w C#
API C# Imaging do przycinania i zmiany rozmiaru plików JPEG
Do przycinania i zmiany rozmiaru obrazów będziemy używać API Aspose.Imaging for .NET. Umożliwia nam programowe tworzenie, ładowanie, manipulowanie, konwertowanie i kompresowanie obrazów lub zdjęć w języku C#. Proszę pobierz bibliotekę DLL interfejsu API lub zainstaluj ją przy użyciu NuGet.
PM> Install-Package Aspose.Imaging
Przytnij obrazy JPEG za pomocą C#
Możemy łatwo przyciąć dowolny obraz JPEG/JPG ze wszystkich stron w kierunku środka obrazu. W tym celu klasa RasterImage udostępnia metodę Crop(Int32, Int32, Int32, Int32), która przycina obraz z określonymi wartościami przesunięcia. Do przycięcia granic obrazu przyjmuje wartości przesunięcia w lewo, w prawo, w górę i w dół jako argumenty. Możemy przyciąć obrazy, stosując podejście „przycinanie po przesunięciu" w języku C#, wykonując czynności podane poniżej:
- Najpierw załaduj wejściowy obraz JPG przy użyciu klasy RasterImage.
- Następnie buforuj obraz za pomocą metody CacheData.
- Następnie wywołaj metodę Crop() z wartościami przesunięcia jako argumentami.
- Na koniec wywołaj metodę Save(), podając jako argument ścieżkę pliku wyjściowego, aby zapisać przycięty plik obrazu.
Poniższy przykładowy kod pokazuje, jak przyciąć obraz JPEG przy użyciu języka C#.
// Ten przykład kodu demonstruje, jak przyciąć obraz JPG przy użyciu metody kadrowania przez przesunięcie.
// Załaduj istniejący obraz do instancji klasy RasterImage
RasterImage rasterImage = (RasterImage)Image.Load(@"C:\Files\images\aspose_logo.jpg");
// Przed przycięciem obraz powinien zostać zapisany w pamięci podręcznej w celu zapewnienia lepszej wydajności
if (!rasterImage.IsCached)
{
rasterImage.CacheData();
}
// Zdefiniuj wartości przesunięcia dla wszystkich czterech stron
int leftShift = 30;
int rightShift = 30;
int topShift = 30;
int bottomShift = 30;
// W oparciu o 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(@"C:\Files\images\cropped_out.jpg");

Przytnij obrazy JPEG za pomocą języka C#.
Przytnij obrazy do określonego rozmiaru za pomocą C#
Klasa RasterImage udostępnia również przeciążoną metodę Crop(Rectangle), która przycina określony obszar obrazu do określonego rozmiaru. Jako argument przyjmuje instancję klasy Rectangle. Możemy przyciąć obrazy do określonego rozmiaru w C#, wykonując kroki podane poniżej:
- Najpierw załaduj wejściowy obraz JPG przy użyciu klasy RasterImage.
- Następnie zapisz obraz w pamięci podręcznej przy użyciu metody CacheData.
- Następnie zainicjuj obiekt klasy Rectangle o określonej lokalizacji i rozmiarze.
- Następnie wywołaj metodę Crop() z utworzonym obiektem Rectangle jako argumentem.
- Na koniec wywołaj metodę Save() podając ścieżkę do pliku wyjściowego jako argument, aby zapisać przycięty obraz plik.
Poniższy przykładowy kod pokazuje, jak przyciąć obraz JPEG do określonego rozmiaru przy użyciu języka C#.
// Ten przykład kodu demonstruje, jak przyciąć obraz JPG przy użyciu metody kadrowania według prostokąta.
// Załaduj istniejący obraz do instancji klasy RasterImage
RasterImage rasterImage = (RasterImage)Image.Load(@"C:\Files\images\aspose_logo.jpg");
// Przed przycięciem obraz powinien zostać zapisany w pamięci podręcznej w celu zapewnienia lepszej wydajności
if (!rasterImage.IsCached)
{
rasterImage.CacheData();
}
// Utwórz instancję klasy Rectangle o żądanym rozmiarze
Rectangle rectangle = new Rectangle(35, 35, 580, 240);
// Wykonaj operację kadrowania na obiekcie klasy Rectangle
rasterImage.Crop(rectangle);
// Zapisz przycięty obraz
rasterImage.Save(@"C:\Files\images\CroppingByRectangle_out.jpg");

Przytnij obraz do określonego rozmiaru za pomocą języka C#.
Zmień rozmiar obrazów JPEG w C#
Klasa Image udostępnia metodę Resize() umożliwiającą zmianę rozmiaru obrazów. Możemy zmienić rozmiar obrazów JPEG w C#, wykonując kroki podane poniżej:
- Najpierw załaduj wejściowy obraz JPG przy użyciu klasy Image.
- Następnie wywołaj metodę Resize(int32, int32) podając jako argumenty wymaganą szerokość i wysokość.
- Na koniec wywołaj metodę Save() podając ścieżkę pliku wyjściowego jako argument, aby zapisać obraz o zmienionym rozmiarze .
Poniższy przykładowy kod pokazuje, jak zmienić rozmiar obrazu JPEG przy użyciu języka C#.
// Ten przykład kodu demonstruje, jak przyciąć obraz JPG przy użyciu metody kadrowania według prostokąta.
// Załaduj istniejący obraz
Image image = Image.Load(@"C:\Files\images\aspose_logo.jpg");
// Nowa szerokość i wysokość
image.Resize(300, 100);
// Zapisz obraz o zmienionym rozmiarze
image.Save(@"C:\Files\images\SimpleResizing_out.jpg");

Zmień rozmiar obrazów JPEG w języku C#.
Zmień rozmiar obrazów JPEG proporcjonalnie w C#
W przypadku zmiany rozmiaru przy stałej wysokości i szerokości obrazy mogą zostać rozciągnięte. Aby uniknąć rozciągnięcia obrazów, możemy zastosować proporcjonalną zmianę rozmiaru. W tym celu klasa Image udostępnia metody ResizeWidthProportionally(Int32) i ResizeHeightProportionally(Int32). Aby zmienić rozmiar obrazu proporcjonalnie do szerokości i wysokości, wykonaj poniższe czynności.
- Najpierw załaduj wejściowy obraz JPG przy użyciu klasy Image.
- Następnie wywołaj metodę Image.ResizeWidthProportionally(Int32) z nową szerokością jako argumentami.
- Następnie wywołaj metodę Image.ResizeHeightProportionally(Int32) z nową wysokością jako argumentami.
- Na koniec wywołaj metodę Save() podając ścieżkę do pliku wyjściowego jako argument, aby zapisać obraz o zmienionym rozmiarze .
Poniższy przykładowy kod pokazuje, jak proporcjonalnie zmienić rozmiar obrazu JPEG przy użyciu języka C#.
// Ten przykład kodu demonstruje, jak przyciąć obraz JPG przy użyciu metody kadrowania według prostokąta.
// Załaduj istniejący obraz
Image image = Image.Load(@"C:\Files\images\sample.jpg");
// Szerokość
int newSzerokość = image.Szerokość / 2;
image.ResizeSzerokośćProportionally(newSzerokość);
// Wysokość
int newWysokość = image.Wysokość / 2;
image.ResizeWysokośćProportionally(newWysokość);
// Zdefiniuj opcje zapisywania
JpegOptions saveOptions = new JpegOptions();
saveOptions.Quality = 100;
// Zapisz obraz
image.Save(@"C:\Files\images\sample_out.jpg", saveOptions);
Zdobądź bezpłatną licencję
Wypróbuj interfejs API bez ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.
Wniosek
W tym artykule dowiedzieliśmy się, jak:
- przycinaj obrazy JPEG w C#;
- przyciąć obraz do określonego rozmiaru;
- programowo zmieniaj rozmiar obrazów JPEG;
- proporcjonalnie zmienić rozmiar obrazów JPEG.
Poza tym możesz dowiedzieć się więcej o Aspose.Imaging for .NET API, korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.