2017-02-01 23 views
0

Я хочу показать измененную картинку в своем Picturebox. Оригинальное изображение: http://www.directupload.net/file/d/4619/78xat5o5_jpg.htm(C#) Изменение размера изображения

И картинка в моей форме: http://www.directupload.net/file/d/4619/lp9nzjgp_png.htm

Мой размер PictureBox является 500x500px. Мой метод, который я использую для изменения размера:

public static Image ResizePicByWidth(Image sourceImage, double newWidth) 
    { 
     double sizeFactor = newWidth/sourceImage.Width; 
     double newHeigth = sizeFactor * sourceImage.Height; 
     Bitmap newImage = new Bitmap((int)newWidth, (int)newHeigth); 
     using (Graphics g = Graphics.FromImage(newImage)) 
     { 
      g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; 
      g.DrawImage(sourceImage, new Rectangle(0, 0, (int)newWidth, (int)newHeigth)); 
     } 
     return newImage; 
    } 

я вызываю метод с оригинальным изображением и ширину от PictureBox. Но как я могу изменить размер изображения правильно? Я хочу, чтобы моя форма отображала всю картину. И я знаю, что эта картина имеет лучи на краю. Я надеюсь, что вы знаете, что я имею в виду.

+0

просто установите ширину и высоту изображения в нужное вам значение. – Steve

+0

Вы установили новую ширину, но на самом деле вы также новичок, чтобы адаптировать окно изображения к newHeigth. Или установите sizemode для увеличения. В этом случае вам вообще не нужно изменять размер! – TaW

+0

Ур английский плохой, извините .. Но Sizemode это решение – ExclusivAtom

ответ

2

PictureBox имеет свойство SizeMode. Если вы установите значение «Увеличить», оно автоматически изменит размер изображения в нем, чтобы оно было в нем.

+0

Эта работа. http://www.directupload.net/file/d/4619/ako9gcqp_png.htm – ExclusivAtom

+0

моя ошибка. Я установил BackgroundImageLayout для увеличения не SizeMode. благодаря – ExclusivAtom

 Смежные вопросы

  • Нет связанных вопросов^_^