【问题标题】:Rotate image in c#在c#中旋转图像
【发布时间】:2018-10-14 22:15:06
【问题描述】:

我希望按下左键时图片框中的图像可以翻转,如下所示的代码,但是按下左键时它没有翻转。任何人都可以帮忙吗?非常感谢!

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        KeyDown += new KeyEventHandler(Form1_KeyDown);
    }

    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        int x = pictureBox1.Location.X;
        int y = pictureBox1.Location.Y;

        if (e.KeyCode == Keys.Right)
        {
            x += 10;
        }

        else if (e.KeyCode == Keys.Left)
        {
            pictureBox1.Image.RotateFlip(RotateFlipType.Rotate180FlipX);
            pictureBox1.Refresh();
            x -= 10;
        }

        else if (e.KeyCode == Keys.Up)
        {
            y -= 10;
        }

        pictureBox1.Location = new Point (x, y);

        pictureBox1.Invalidate();
    }
}
}

【问题讨论】:

  • 已经测试了你在这里的代码,它似乎工作正常 - 你使用的是 numbad 上的箭头还是实际的箭头键?因为它们确实映射到不同的 Keys 枚举?
  • 您需要像example中一样重新分配到图像字段
  • 我已经测试过了,用实际的箭头键,图片框会移动,但是按下左键时图像没有翻转。
  • 建议:如果您使用的是 .NET,则使用什么版本?如果它是 3.5 或更高版本,那么我强烈建议切换到 WPF 或将 ElementHost 添加到您的 Form 并将 XAML 内容添加到 ElementHost。我这么说的唯一原因是您可以轻松地旋转并使用它比在 WinForms 中做更多的事情。
  • 4.7.1,项目必须使用c#完成。无论如何,感谢您的建议 =) 谢谢!

标签: c# image picturebox flip


【解决方案1】:

您正在尝试旋转图片框,而不是 Image。根据链接中给出的示例。旋转图像,然后将其分配给图片框。

从微软文档https://msdn.microsoft.com/en-us/library/system.drawing.image.rotateflip(v=vs.110).aspx正式引用此链接

【讨论】:

  • 在他的代码中他调用的是picturebox.image.rotateflip(),所以他是直接翻转图像而不是picturebox
猜你喜欢
  • 2011-01-17
  • 2019-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 2022-07-11
  • 1970-01-01
  • 2015-07-20
相关资源
最近更新 更多