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# 图片框旋转的主要内容,如果未能解决你的问题,请参考以下文章