изменить размер изображения в С#

Мы часто получаем изображения с размером, который не соответствует нашим требованиям, поэтому мы должны изменить их размер соответствующим образом. В этой статье вы узнаете, как изменять размер изображений с помощью C# из приложений .NET. Кроме того, вы научитесь явно изменять размер растровых и векторных изображений.

.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. В случае возникновения вопросов вы можете связаться с нами на нашем форуме.

Смотрите также