m0_67356164 2024-09-21 16:55 采纳率: 0%
浏览 15

picturebox控件显示图片变成横向

图片在win下预览是竖着的,高度是4000,宽度是6000
把它放到picturebox里就变成了横向,而且高度和宽度对换了
这个是原图缩放

img


这是简单测试的代码和图片桌面上的属性

img

img


这是运行后的效果

img


主要图片是可以旋转,关键还有其他的图片,其他的图片本身是横着的就播放正常,如果旋转就不对了

  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-21 16:56
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从你提供的描述和图片来看,你的问题是在使用PictureBox控件显示图片时,图片的方向出现了问题。图片在原始状态下是竖向的,高度为4000像素,宽度为6000像素。当你把它放到PictureBox里显示时,图片变为了横向,似乎高度和宽度的显示也对换了。

    要解决这个问题,你需要考虑在加载图片并设置到PictureBox之前对图片进行旋转处理。根据你的描述和代码示例,旋转处理可以通过RotateFlip方法来实现。但是在你的代码中似乎没有正确地应用这个方法。另外,图片的加载路径中似乎也有错误,例如路径字符串应该是以双反斜杠开头("C:\Users\zhao\Desktop"),以避免可能的转义字符问题。下面是一个简单的示例代码来展示如何加载图片并可能进行旋转处理:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            
            try
            {
                // 正确地指定图片文件的路径,这里假设文件位于桌面目录上
                string imagePath = "C:\\Users\\zhao\\Desktop\\DSC02015.JPG"; // 确保路径正确且图片存在
                Image m1 = Image.FromFile(imagePath); // 从文件加载图片
                pictureBox1.Image = m1; // 设置PictureBox控件的Image属性来显示图片
                textBox1.Text = m1.Width.ToString(); // 显示图片的宽度到文本框中
                // 判断是否需要旋转图片(假设你想要图片竖屏显示)
                if (m1.Width > m1.Height) // 如果宽度大于高度,则旋转图片以适应PictureBox的尺寸(假设PictureBox是竖直的)
                {
                    Bitmap bitmap = new Bitmap(m1); // 创建Bitmap实例以进行操作
                    bitmap.RotateFlip(RotateFlipType.Rotate90); // 旋转图片以符合正常显示方向(或根据需要选择其他旋转类型)
                    pictureBox1.Image = bitmap; // 更新PictureBox显示的图片为旋转后的图片
                }
            }
            catch (Exception ex) // 异常处理,以防文件不存在或其他错误情况发生
            {
                MessageBox.Show("无法加载图片:" + ex.Message); // 显示错误消息提示用户问题所在
            }
        }
    }
    

    在这个例子中,我们检查了图片的宽度和高度,如果宽度大于高度(意味着原图是横屏的),我们将其旋转以使其适应竖直显示的PictureBox控件。你需要确保你的PictureBox控件尺寸合适,以适应旋转后的图片尺寸。如果你使用的是其他类型的容器或者想要其他的显示效果(比如保持原始尺寸但旋转图像),则需要相应地调整代码。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月21日