Есть ли удобный способ изменения размера изображения с помощью C#?Изменение размера изображений
ответ
Следующая ссылка может помочь вам :)
snippets.dzone.com/posts/show/4336
Update: Код в ссылке выше физически изменяет и сохраняет изображение, если ваше намерение состоит в том, чтобы изменить размер файла изображения в целях экономии места , иначе, как уже упоминалось, вы можете просто установить высоту/ширину в элементе управления изображением.
Если вы загружаете изображение, вы можете просто установить свойства Width/Height.
например.
Bitmap bmp = new Bitmap(@"c:\myfile.bmp");
bmp.Width = (int)(bmp.Width/2);
bmp.Height = (int)(bmp.Height/2);
загрузить его в gdi + (system.drawing) и масштаб?
Проверить это один
Из моего личного кода галереи. В любом случае, немного старый.
protected Image FixedSize(Image imgPhoto, int Width, int Height)
{
int width = imgPhoto.Width;
int height = imgPhoto.Height;
int x = 0;
int y = 0;
int num5 = 0;
int num6 = 0;
float num7 = 0f;
float num8 = 0f;
float num9 = 0f;
num8 = ((float) Width)/((float) width);
num9 = ((float) Height)/((float) height);
if (num9 < num8)
{
num7 = num9;
num5 = Convert.ToInt16((float) ((Width - (width * num7))/2f));
}
else
{
num7 = num8;
num6 = Convert.ToInt16((float) ((Height - (height * num7))/2f));
}
int num10 = (int) (width * num7);
int num11 = (int) (height * num7);
Bitmap image = new Bitmap(Width, Height, PixelFormat.Format24bppRgb);
image.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution);
Graphics graphics = Graphics.FromImage(image);
graphics.Clear(ColorTranslator.FromHtml("#ffffff"));
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.DrawImage(imgPhoto, new Rectangle(num5, num6, num10, num11), new Rectangle(x, y, width, height), GraphicsUnit.Pixel);
graphics.Dispose();
return image;
}
-1: num1, num2, num3, ... num11. Без обид, но выбор имен переменных читается, как код целенаправленно запутывается. – Juliet
Это серьезный код WTF: имена переменных, Convert.ToInt16, ColorTranslators.FromHtml. Я воздержусь от голосования, потому что, по крайней мере, вы получили право InterpolationMode. – MusiGenesis
Kidooosss ... этот код от .NET Reflector. У меня есть идея копирования-вставки. Намерение состоит в том, чтобы показать только логику. рейтинг ... ваш выбор. :-) – NinethSense
В additiona к тому, что говорят другие, для изображений меньше, чем 300x300, Image.GetThumbnailImage очень удобно:
static void Main(string[] args)
{
Bitmap b = new Bitmap(@"C:\Documents and Settings\juliet\My Documents\My Pictures\julietawesome.bmp");
Image image = b.GetThumbnailImage(100, 100, null, IntPtr.Zero);
image.Save(@"C:\Documents and Settings\juliet\My Documents\My Pictures\thumbnail.bmp", ImageFormat.Bmp);
}
Поскольку никто еще не сказал, что это: попробуйте WPF.
Public Function ScaleByPercent(ByVal imgPhoto As Image, ByVal Percent As Integer) As Image
Dim nPercent As Single = (CType(Percent, Single)/100)
Dim sourceWidth As Integer = imgPhoto.Width
Dim sourceHeight As Integer = imgPhoto.Height
Dim sourceX As Integer = 0
Dim sourceY As Integer = 0
Dim destX As Integer = 0
Dim destY As Integer = 0
Dim destWidth As Integer = CType((sourceWidth * nPercent), Integer)
Dim destHeight As Integer = CType((sourceHeight * nPercent), Integer)
Dim bmPhoto As New Bitmap(destWidth, destHeight, PixelFormat.Format24bppRgb)
bmPhoto.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution)
Dim grPhoto As Graphics = Graphics.FromImage(bmPhoto)
grPhoto.InterpolationMode = InterpolationMode.HighQualityBicubic
grPhoto.DrawImage(imgPhoto, New Rectangle(destX, destY, destWidth, destHeight), New Rectangle(sourceX, sourceY, sourceWidth, sourceHeight), GraphicsUnit.Pixel)
grPhoto.Dispose()
Return bmPhoto
End Function
Имейте в виду, что алгоритм изменения размера GDI будет производить посредственные результаты при существенных изменениях размера изображения. Я написал аналогичный код в прошлом, а затем переключился на стороннюю библиотеку, чтобы получить более качественный алгоритм изменения размера. – ScottS
- 1. Изменение размера изображений npm
- 2. Изменение размера изображений
- 3. Изменение размера фоновых изображений
- 4. jQuery изменение размера изображений
- 5. Изменение размера изображений - Symfony
- 6. Загрузка изображений Изменение размера
- 7. Изменение размера нескольких изображений
- 8. Изменение размера изображений до фиксированного размера
- 9. Изменение размера изображений до меньшего размера
- 10. Изменение размера изображений при изменении размера браузера
- 11. Изменение размера изображений и форматов изображений
- 12. Изменение размера изображений и производительности
- 13. Изменение размера изображений html/css
- 14. Изменение размера изображений с ориентацией
- 15. Изменение размера изображений в php
- 16. Symfony2: Изменение размера загруженных изображений
- 17. Изменение размера изображений в C#
- 18. Изменение размера изображений в VB.NET
- 19. Неправильное изменение размера загруженных изображений
- 20. Изменение размера изображений Objective-C
- 21. Изменение размера изображений в списке
- 22. Изменение размера и обрезка изображений
- 23. Symfony2 AvalancheImagineBundle/Изменение размера изображений
- 24. Изменение размера изображений с сервера
- 25. Изменение размера изображений в RMarkdown
- 26. Изменение размера изображений в jQuery
- 27. Изменение размера изображений через css
- 28. Изменение размера изображений с помощью php
- 29. Изменение размера графических изображений - png - текст
- 30. Изменение размера прозрачных изображений с использованием C#
Как вы определяете: удобный? – RedFilter