旋转图片框改变大小

本文关键字:改变 旋转 | 更新日期: 2023-09-27 18:03:58

我有一个图片框,尺寸为710x238,我要用它来显示一个更大的图像。当我加载图像时,它加载图像而不扭曲它。效果很好。但是当我旋转图像并尝试在PictureBox中显示它时,图像大小变为方形…

如何随图像旋转PictureBox以使旋转后的图像不失真?

我的代码

pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; //property for load without distorting

和旋转的代码(这段代码旋转图像…我想旋转pictureBox

Bitmap oldBitmap = (Bitmap)pictureBox1.Image;
float angle = 90;
var newBitmap = new Bitmap(oldBitmap.Width, oldBitmap.Height);
var graphics = Graphics.FromImage(newBitmap);
graphics.TranslateTransform((float)oldBitmap.Width / 2, (float)oldBitmap.Height / 2);
graphics.RotateTransform(angle);
graphics.TranslateTransform(-(float)oldBitmap.Width / 2, -(float)oldBitmap.Height / 2);
graphics.DrawImage(oldBitmap, new Point(0, 0));
pictureBox1.Image = newBitmap;

如何旋转图片框?我想让PictureBox和位图一起旋转

旋转图片框改变大小

好了,我想我终于明白你需要什么了。保持大小模式为缩放,并尝试如下:

pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; // or PictureBoxSizeMode.StretchImage
...
int height = pictureBox1.Height;
int width = pictureBox1.Width;
pictureBox1.Width = height;
pictureBox1.Height= width;
pictureBox1.Image = newBitmap;

你可以试试:

pictureBox1.SizeMode =PictureBoxSizeMode.StretchImage;

如果你想旋转PictureBox,你可以试试这个和这个