【问题标题】:C# Picturebox rotationC# 图片框旋转
【发布时间】:2016-02-15 21:44:24
【问题描述】:

如何在PictureBox 中旋转图像?我的PictureBox 中有一个简单的 pacman.gif 图像,它在运行时运行良好(向各个方向移动)。但是我想在按左键或右键时旋转我的 gif。 实际上它可以很好地旋转,但在运行时动画停止工作。

 private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        switch (e.KeyCode)
        {
            case Keys.Left:
                pictureBox1.Left -= 7;
                break;
            case Keys.Right:
                  pictureBox1.Image.RotateFlip(RotateFlipType.RotateNoneFlipX);
        pictureBox1.Left += 7;
                break;
            case Keys.Up:
                pictureBox1.Top -= 7;
                break;
            case Keys.Down:
                pictureBox1.Top += 7;
                break;
        }

    }

这是我的代码。但是 gif 不起作用。

【问题讨论】:

标签: c#


【解决方案1】:

您至少在原则上使用RotateFlip 方法走在正确的轨道上,尽管我没有看到您进行旋转,只是在您显示的代码中进行了翻转。

不要听那些链接到免费轮换代码的人;你只需要旋转90°或倍数..

但是您不能旋转动画 gif 并期望它在之后工作。

相反,您应该使用 gif 创建/编辑工具并在那里创建旋转和/或翻转的版本,并在转弯时加载正确的版本。

GDI 方法都只会旋转第一帧并有效地破坏 gif 中的动画。在 c# 中处理动画 gif 并不真正支持。

【讨论】:

  • 没问题;可惜我没有比这更好的消息了。如果您对答案感到满意,请考虑accepting it..
  • 您可以旋转动画 gif,但在没有外部帮助的情况下并不容易。例如,使用 ImageMagick,您可以做到(参见:stackoverflow.com/a/28073625/390421)。 ImageMagick 有一个 dotNet 包装器,它公开了一些功能。 ImageMagick 岩石。 :)
  • 很高兴知道!我仍然建议提前创建变化并在转弯时切换。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 1970-01-01
  • 2011-05-07
  • 2014-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多