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 zmiany rozmiaru obrazu w języku C#
- Zmień rozmiar obrazów rastrowych
- Zmień rozmiar obrazu proporcjonalnie
- Zmiana rozmiaru obrazów 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#.
- Najpierw załaduj plik obrazu przy użyciu klasy Image.
- Następnie zmień rozmiar obrazu, wywołując metodę Image.Resize(Int32, Int32).
- Na koniec zapisz obraz o zmienionym rozmiarze za pomocą metody Image.Save(string).
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.
- Najpierw załaduj obraz przy użyciu klasy Image.
- Następnie zmień rozmiar obrazu, wywołując metodę Image.Resize(Int32, Int32, ResizeType).
- Na koniec zapisz obraz o zmienionym rozmiarze za pomocą metody Image.Save(string).
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ąć.
- Najpierw załaduj plik obrazu przy użyciu klasy Image.
- Następnie buforuj dane obrazu przy użyciu metody Image.CacheData().
- Określ nową wysokość i szerokość obrazu.
- Oblicz wartości proporcji za pomocą metody Image.ResizeWidthProportionally(Int32) i Image.ResizeHeightProportionally(Int32).
- Na koniec zapisz obraz o zmienionym rozmiarze za pomocą metody Image.Save(string).
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.