我将图片动态加载到预先存在的PictureBox person_img
,该图片框具有所有默认值且尺寸不正确。我希望能够动态调整大小,使所有图像都是people_popup_tab
宽度的1/3。
我尝试了很多方法,包括类似问题的答案。我最后的尝试是加载图像并将SizeMode设置为AutoSize,以便它首先以其全尺寸渲染,然后我就能以这种方式获得其宽度和高度。然后我会使用这个宽度和高度来知道如何按比例缩放图像。
但是图像仍然让人感到难以理解。有些人现在根本就没有出现。
如何在不丢失宽高比的情况下将图像调整为people_popup_tab
宽度的1/3?
我目前的代码:
person_img.SizeMode = PictureBoxSizeMode.AutoSize;
person_img.Load(thisFaculty.imagePath);
int oldWidth = person_img.Width;
int oldHeight = person_img.Height;
int newWidth = people_popup_tab.Width / 3;
int newHeight = oldHeight * (newWidth / oldWidth);
person_img.SizeMode = PictureBoxSizeMode.StretchImage;
person_img.Width = newWidth;
person_img.Height = newHeight;
答案 0 :(得分:0)
首先将图像加载到Bitmap类,然后使用图像的实际尺寸调整图片框的大小。类似于以下代码
var bmp = new Bitmap(imageFile);
pictureBox1.Width = bmp.Width / 3;
pictureBox1.Height = bmp.Height / 3;
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.Image = bmp;