C# 图片框旋转

Posted

技术标签:

【中文标题】C# 图片框旋转【英文标题】:C# Picturebox rotation 【发布时间】: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 不起作用。

【问题讨论】:

代码中的任何内容都不会旋转图像。那么,“它旋转良好”是什么意思?如果有的话,请发布应该进行轮换的代码。 ***.com/questions/2163829/… 可能重复,除非问题与按键有关。信息不足。 ...或我的版本Using a matrix to rotate rectangles individually 这个 SO 答案也可能会有所帮助***.com/a/4144124/1726499 【参考方案1】:

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

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

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

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

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

【讨论】:

没问题;可惜我没有比这更好的消息了。如果您对答案感到满意,请考虑accepting it.. 您可以旋转动画 gif,但在没有外部帮助的情况下并不容易。例如,使用 ImageMagick,您可以做到(参见:***.com/a/28073625/390421)。 ImageMagick 有一个 dotNet 包装器,它公开了一些功能。 ImageMagick 岩石。 :) 很高兴知道!我仍然建议提前创建变化并在转弯时切换。

以上是关于C# 图片框旋转的主要内容,如果未能解决你的问题,请参考以下文章

旋转图片中的 ROI

C# 从一个图片框拖放到另一个图片框

C#图片框图片消失

用图片框on_click c#切换图片框的图片

C#中的图片框值

ASP.NET MVC 网站开发总结——C#操作图片:多张图的拼接(旋转)