Чтобы изменить размер изображения в C#, вы можете использовать различные методы. Вот некоторые часто используемые подходы:
-
Использование пространства имен System.Drawing:
using System.Drawing; public Image ResizeImage(Image image, int newWidth, int newHeight) { Bitmap bitmap = new Bitmap(newWidth, newHeight); using (Graphics graphics = Graphics.FromImage(bitmap)) { graphics.DrawImage(image, 0, 0, newWidth, newHeight); } return bitmap; } -
Использование сторонних библиотек.
Существует несколько популярных сторонних библиотек, которые упрощают изменение размера изображений в C#. Некоторые широко используемые библиотеки включают:- ImageResizer: предоставляет полный набор методов изменения размера изображений.
- SixLabors.ImageSharp: мощная кроссплатформенная библиотека для манипулирования изображениями.
Эти библиотеки предлагают более расширенные функции и гибкость по сравнению со встроенными вариантами.
-
Использование WPF (Windows Presentation Foundation):
Если вы работаете с приложением WPF, вы можете использовать пространство именSystem.Windows.Media.Imagingдля изменения размера изображений. Вот пример:using System.Windows.Media.Imaging; public BitmapSource ResizeImage(BitmapSource image, int newWidth, int newHeight) { var encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(image)); encoder.QualityLevel = 100; var bitmap = new WriteableBitmap(image); bitmap.Resize(newWidth, newHeight, WriteableBitmapExtensions.Interpolation.Bilinear); bitmap.Freeze(); var resizedImage = new WriteableBitmap(bitmap); encoder.Frames.Clear(); encoder.Frames.Add(BitmapFrame.Create(resizedImage)); using (var stream = new MemoryStream()) { encoder.Save(stream); stream.Seek(0, SeekOrigin.Begin); var result = new BitmapImage(); result.BeginInit(); result.CacheOption = BitmapCacheOption.OnLoad; result.StreamSource = stream; result.EndInit(); result.Freeze(); return result; } }
Это всего лишь несколько примеров. Существуют и другие методы, доступные в зависимости от ваших конкретных требований и библиотек, с которыми вы решите работать.