c# - 将图像旋转 n 度

标签 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();

我对任何和所有的建议都持开放态度,因为我的大脑现在已经炸了...

回答

虽然下面的答案在技术上是正确的,但我在这里找到了问题的实际解决方案: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();

最佳答案

您缺少 g.DrawImage() 调用

关于c# - 将图像旋转 n 度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23917887/

相关文章:

c# - 遇到 '|'时编辑字符串

c# - IEnumerable<char> 的 Java 等效项

java - 外面填充一个圆圈,里面变成透明

具有多个增量器的 Java for 循环

c# - 如何在不在每个过程中创建附加参数的情况下将线程文化从应用程序传递到 sql server?

c# - WPF 默认菜单

c# - 在 TFS 中获取已删除文件的特​​定版本

linux - 用于成像 Linux 应用程序的最佳语言/框架

c# - 在循环中创建位图时出现内存溢出异常

c# - 如何以原始格式保存图像?