Przytnij i zmień rozmiar obrazu JPEG za pomocą C#

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 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:

  1. Najpierw załaduj wejściowy obraz JPG przy użyciu klasy RasterImage.
  2. Następnie buforuj obraz za pomocą metody CacheData.
  3. Następnie wywołaj metodę Crop() z wartościami przesunięcia jako argumentami.
  4. 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ą C#

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:

  1. Najpierw załaduj wejściowy obraz JPG przy użyciu klasy RasterImage.
  2. Następnie zapisz obraz w pamięci podręcznej przy użyciu metody CacheData.
  3. Następnie zainicjuj obiekt klasy Rectangle o określonej lokalizacji i rozmiarze.
  4. Następnie wywołaj metodę Crop() z utworzonym obiektem Rectangle jako argumentem.
  5. 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 w określonym rozmiarze za pomocą języka C#.

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:

  1. Najpierw załaduj wejściowy obraz JPG przy użyciu klasy Image.
  2. Następnie wywołaj metodę Resize(int32, int32) podając jako argumenty wymaganą szerokość i wysokość.
  3. 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 C#

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.

  1. Najpierw załaduj wejściowy obraz JPG przy użyciu klasy Image.
  2. Następnie wywołaj metodę Image.ResizeWidthProportionally(Int32) z nową szerokością jako argumentami.
  3. Następnie wywołaj metodę Image.ResizeHeightProportionally(Int32) z nową wysokością jako argumentami.
  4. 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.

Zobacz też