Мы часто получаем изображения с размером, который не соответствует нашим требованиям, поэтому мы должны изменить их размер соответствующим образом. В этой статье вы узнаете, как изменять размер изображений с помощью C# из приложений .NET. Кроме того, вы научитесь явно изменять размер растровых и векторных изображений.
- .NET API для изменения размера изображений
- Изменение размера растровых изображений
- Пропорциональное изменение размера изображения
- Изменение размера векторных изображений
.NET API для изменения размера изображений
Для изменения размера изображений. мы будем использовать Aspose.Imaging для .NET. Это мощный API обработки изображений для работы с различными типами растровых и векторных изображений. Вы можете скачать библиотеку DLL API или установить ее через NuGet.
PM> Install-Package Aspose.Imaging
Изменение размера растровых изображений с помощью C#
Существует два метода изменения размера растровых изображений (PNG, GIF, JPEG и т. д.): простое изменение размера и изменение размера с использованием типа изменения размера. При простом изменении размера изображения изменяются путем указания высоты и ширины. Принимая во внимание, что второй метод использует другие методы изменения размера. В следующих разделах показано, как изменить размер изображения с помощью каждого из вышеупомянутых методов.
Простое изменение размера изображения
Ниже приведены шаги по изменению размера изображения в C#.
- Сначала загрузите файл изображения с помощью класса Image.
- Затем измените размер изображения, вызвав метод Image.Resize(Int32, Int32).
- Наконец, сохраните изображение с измененным размером, используя метод Image.Save(string).
В следующем примере кода показано, как изменить размер изображения в приложениях .NET.
// Загрузить изображение
using (Image image = Image.Load("aspose-logo.jpg"))
{
// Измените размер изображения и сохраните изображение с измененным размером
image.Resize(300, 300);
image.Save("SimpleResizing_out.jpg");
}
Изменение размера изображения с использованием типа изменения размера
Перечисление ResizeType используется для указания методов изменения размера, которые вы можете использовать в соответствии с вашими требованиями. Полный список поддерживаемых типов изменения размера доступен здесь. Ниже приведены шаги по изменению размера изображения с использованием определенного метода изменения размера.
- Сначала загрузите изображение с помощью класса Image.
- Затем измените размер изображения, вызвав метод Image.Resize(Int32, Int32, ResizeType).
- Наконец, сохраните изображение с измененным размером, используя метод Image.Save(string).
В следующем примере кода размер изображения изменяется с помощью определенного метода изменения размера.
// Загрузить изображение
using (Image image = Image.Load("aspose-logo.jpg"))
{
// Измените размер изображения и сохраните изображение с измененным размером
image.Resize(300, 300, ResizeType.LanczosResample);
image.Save("SimpleResizing_out.jpg");
}
Пропорциональное изменение размера изображения
Изменение размера изображений путем указания высоты и ширины может привести к уменьшению или масштабированию изображения. Поэтому вам придется рассчитывать соотношение сторон вручную. Однако любой просчет соотношения сторон может привести к растянутому изображению. Чтобы избежать таких проблем, вы можете использовать пропорциональное изменение размера. Ниже приведены шаги для достижения этого.
- Сначала загрузите файл изображения с помощью класса Image.
- Затем кэшируйте данные изображения, используя метод Image.CacheData().
- Укажите новую высоту и ширину изображения.
- Рассчитайте значения пропорций, используя методы Image.ResizeWidthProportionally(Int32) и Image.ResizeHeightProportionally(Int32).
- Наконец, сохраните изображение с измененным размером, используя метод Image.Save(string).
Если вы хотите использовать какой-либо конкретный тип изменения размера при пропорциональном изменении размера изображений, используйте методы перегрузки Image.ResizeWidthProportionally(Int32, ResizeType) и Image.ResizeHeightProportionally(Int32, ResizeType).
В следующем примере кода показано, как пропорционально изменить размер изображения с помощью C#.
// Загрузить изображение
using (Image image = Image.Load("aspose-logo.png"))
{
// Кэшировать данные изображения
if (!image.IsCached)
{
image.CacheData();
}
// Укажите ширину и высоту
int newWidth = image.Width / 2;
image.ResizeWidthProportionally(newWidth);
int newHeight = image.Height / 2;
image.ResizeHeightProportionally(newHeight);
// Сохранить изображение
image.Save("ResizeImageProportionally_out.png");
}
Изменение размера векторных изображений в C#
Aspose.Imaging for .NET также позволяет изменять размер векторных изображений и сохранять их в формате растрового изображения. В следующем примере кода показано, как изменить размер изображения SVG и сохранить результат в формате PNG.
// Загрузить изображение
using (Image image = Image.Load("image.svg"))
{
// Изменить размер изображения как PNG
image.Resize(image.Width * 10,image.Height * 15);
image.Save("Logotype_10_15.png", new PngOptions()
{
VectorRasterizationOptions = new SvgRasterizationOptions()
});
}
Получите бесплатную лицензию API
Вы можете получить бесплатную временную лицензию для использования Aspose.Imaging for .NET без ограничений на пробную версию.
Вывод
В этой статье вы узнали, как программно изменять размер изображений с помощью C#. Кроме того, образцы кода продемонстрировали, как выполнять простое изменение размера изображений или изменение размера с использованием определенного типа. Мы также рассмотрели, как избежать ручного расчета соотношения сторон при изменении размера изображений. Кроме того, в конце обсуждается изменение размера векторных изображений. Кроме того, вы можете узнать больше об API обработки изображений .NET, используя документацию. Кроме того, вы можете скачать полный пакет примеров исходного кода с GitHub. В случае возникновения вопросов вы можете связаться с нами на нашем форуме.