【发布时间】:2018-07-21 00:05:53
【问题描述】:
我花了很多时间尝试围绕其中心正确旋转图像。下例中的旋转角度为 -61 度。 我正在使用此代码计算旋转后的图像大小
var rad = Math.Sin(angle * Math.PI / 180.0);
var x0 = width / 2; // rotate around center
var y0 = height / 2; // rotate around center
var x = width;
var y = height;
var newImgWidth = (float)(x0 + Math.Abs((x - x0) * Math.Cos(rad)) + Math.Abs((y - y0) * Math.Sin(rad)));
var newImgHeight = (float)(y0 + Math.Abs((x - x0) * Math.Sin(rad)) + Math.Abs((y - y0) * Math.Cos(rad)));
结果图像在实际图像上方和下方有空格,但它不应该。 我做错了什么?
【问题讨论】:
-
图片周围没有多余的空白。 Just rotated corners。如果要添加裁剪功能,那就完全不同了。尤其是源是 jpeg 文件...
-
如果不分析实际图像,就无法做到这一点。
标签: c# image graphics rotation gdi+