将图像旋转n度

时间:2014-05-28 17:10:53

标签: c# imaging

这看起来很简单,我在使用Image.RotateFlip方法之前完成了这项工作,但这是预定义的度数(取决于鼠标从当前位置移动了多远。

这是我所拥有的,我不知道为什么它没有应用(图像根本没有移动)

                using (var g = Graphics.FromImage(pbProfile.Image))
                {
                    g.TranslateTransform(pbProfile.Image.Width / 2f, pbProfile.Image.Height / 2f);
                    g.RotateTransform(Pixels);
                }
                pbProfile.Refresh();

我现在开始大脑炒作时,我可以接受任何建议......

ANSWER

虽然下面的答案在技术上是正确的,但我在这里找到了问题的实际解决方案:Draw manipulated graphic into another graphic这解释了我不需要旋转图像而是旋转而是图形我正在写它。

                Bitmap bmp = new Bitmap(pbProfile.Image.Width, pbProfile.Image.Height);
                using (var g = Graphics.FromImage(bmp))
                {
                    g.TranslateTransform(bmp.Width / 2f, bmp.Height / 2f);
                    g.RotateTransform(Pixels);
                    g.DrawImage(pbProfile.Image, 0, 0);
                }
                pbProfile.Refresh();

2 个答案:

答案 0 :(得分:4)

您错过了g.DrawImage()来电

答案 1 :(得分:1)

请记住,参数是(浮点)度。如果" Pixels"你可能会得到奇怪/意想不到的结果。大于360.

* public void RotateTransform(     浮角 )

参数:角

类型:System.Single

以度为单位的旋转角度。*