zmień rozmiar obrazów w C#

Często otrzymujemy obrazy o rozmiarze, który nie spełnia naszych wymagań, dlatego musimy odpowiednio je zmienić. W tym artykule dowiesz się, jak zmieniać rozmiar obrazów w języku C# z poziomu aplikacji .NET. Ponadto za pomocą przykładów kodu C# zademonstrujemy, jak zmieniać rozmiar obrazów rastrowych i wektorowych.

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

Aby zmienić rozmiar obrazów. użyjemy Aspose.Imaging for .NET. Jest to potężny interfejs API przetwarzania obrazu do manipulowania różnymi typami obrazów rastrowych i wektorowych. Możesz pobrać bibliotekę DLL API lub zainstalować ją przez NuGet.

PM> Install-Package Aspose.Imaging

Zmień rozmiar obrazów rastrowych w C#

Istnieją dwie metody zmiany rozmiaru obrazów rastrowych (PNG, GIF, JPEG itp.): prosta zmiana rozmiaru i zmiana rozmiaru za pomocą typu zmiany rozmiaru. W prostej zmianie rozmiaru obrazy są zmieniane poprzez podanie wysokości i szerokości. Podczas gdy druga metoda wykorzystuje różne techniki zmiany rozmiaru. W poniższych sekcjach pokazano, jak zmienić rozmiar obrazu przy użyciu każdej z wyżej wymienionych metod.

C# Prosta zmiana rozmiaru obrazu

Poniżej przedstawiono kroki zmiany rozmiaru obrazu w języku C#.

Poniższy przykładowy kod pokazuje, jak zmienić rozmiar obrazu w aplikacjach .NET.

// Załaduj obraz
using (Image image = Image.Load("aspose-logo.jpg"))
{
    // Zmień rozmiar obrazu i zapisz obraz o zmienionym rozmiarze
    image.Resize(300, 300);
    image.Save("SimpleResizing_out.jpg");
}

C# Zmień rozmiar obrazu z typem zmiany rozmiaru

Wyliczenie ResizeType służy do określania technik zmiany rozmiaru, których można użyć zgodnie z własnymi wymaganiami. Pełna lista obsługiwanych typów zmiany rozmiaru jest dostępna tutaj. Poniżej przedstawiono kroki zmiany rozmiaru obrazu przy użyciu określonej techniki zmiany rozmiaru.

Poniższy przykładowy kod zmienia rozmiar obrazu przy użyciu określonej techniki zmiany rozmiaru.

// Załaduj obraz
using (Image image = Image.Load("aspose-logo.jpg"))
{
    // Zmień rozmiar obrazu i zapisz obraz o zmienionym rozmiarze
    image.Resize(300, 300, ResizeType.LanczosResample);
    image.Save("SimpleResizing_out.jpg");
}

Proporcjonalna zmiana rozmiaru obrazu w C#

Zmiana rozmiaru obrazów poprzez określenie wysokości i szerokości może spowodować zmniejszenie lub przeskalowanie obrazu. Dlatego musisz ręcznie obliczyć współczynnik proporcji. Jednak każdy błąd w obliczeniu proporcji może prowadzić do rozciągnięcia obrazu. Aby uniknąć takich problemów, możesz użyć proporcjonalnej zmiany rozmiaru. Poniżej przedstawiono kroki, aby to osiągnąć.

Jeśli chcesz użyć określonego typu zmiany rozmiaru podczas proporcjonalnej zmiany rozmiaru obrazów, użyj metod przeciążenia Image.ResizeWidthProportionally(Int32, ResizeType) i Image.ResizeHeightProportionally(Int32, ResizeType).

Poniższy przykład kodu pokazuje, jak zmienić rozmiar obrazu proporcjonalnie przy użyciu języka C#.

// Załaduj obraz
using (Image image = Image.Load("aspose-logo.png"))
{
    // Przechowuj dane obrazu w pamięci podręcznej
    if (!image.IsCached)
    {
        image.CacheData();
    }
    
    // Określ szerokość i wysokość
    int newWidth = image.Width / 2;
    image.ResizeWidthProportionally(newWidth);
    int newHeight = image.Height / 2;
    image.ResizeHeightProportionally(newHeight);
    
    // Zapisać obraz
    image.Save("ResizeImageProportionally_out.png");
}

Zmień rozmiar obrazów wektorowych w C#

Aspose.Imaging for .NET umożliwia również zmianę rozmiaru obrazów wektorowych i zapisanie ich w formacie obrazu rastrowego. Poniższy przykładowy kod pokazuje, jak zmienić rozmiar obrazu SVG i zapisać wynik w formacie PNG.

// Załaduj obraz
using (Image image = Image.Load("image.svg"))
 {
    // Zmień rozmiar obrazu jako PNG
    image.Resize(image.Width * 10,image.Height * 15);
    image.Save("Logotype_10_15.png", new PngOptions()
    {
        VectorRasterizationOptions = new SvgRasterizationOptions()
    });
 }

C# Image Resizing API — Uzyskaj bezpłatną licencję

Możesz uzyskać bezpłatną tymczasową licencję na zmianę rozmiaru obrazów bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule nauczyłeś się, jak programowo zmieniać rozmiar obrazów przy użyciu języka C#. Ponadto próbki kodu pokazały, jak wykonać prostą zmianę rozmiaru obrazów lub zmianę rozmiaru przy użyciu określonego typu. Omówiliśmy również, jak uniknąć ręcznego obliczania współczynnika proporcji podczas zmiany rozmiaru obrazów. Ponadto na końcu omówiono zmianę rozmiaru obrazów wektorowych. Poza tym możesz dowiedzieć się więcej o interfejsie API przetwarzania obrazu .NET, korzystając z dokumentacji. Możesz także pobrać kompletny pakiet próbek kodu źródłowego z GitHub. W przypadku jakichkolwiek pytań możesz skontaktować się z nami na naszym forum.

Zobacz też