我有以下代码,我写的是尝试旋转位图(这是一个测试)的想法是采取位图并旋转一定程度的度数,然后使用win form在屏幕上绘制
protected override void OnDoubleClick(EventArgs e)
{
base.OnDoubleClick(e);
Graphics g = this.CreateGraphics();
Bitmap b = new Bitmap(path);
g.Clear(Color.White);
imagePosition = Cursor.Position;
b = RotateImage(b, 45);
g.DrawImage(b, new Point(100, 100));
}
public Bitmap RotateImage(Bitmap b, float angle)
{
Bitmap returnBitmap = new Bitmap(b.Width, b.Height);
returnBitmap.SetResolution(b.HorizontalResolution, b.VerticalResolution);
Graphics g = Graphics.FromImage(returnBitmap);
g.TranslateTransform((float)b.Width / 2, (float)b.Height / 2);
g.RotateTransform(angle);
g.TranslateTransform(-(float)b.Width / 2, -(float)b.Height / 2);
g.DrawImage(b, new Point(0, 0));
return returnBitmap;
}
这是旋转前的图像
这是旋转45度后的图像,如代码所示
答案 0 :(得分:0)
它被裁剪的原因是没有足够的空间来显示它的旋转。对角线长于两侧(毕达哥拉斯)。
您需要为图像腾出更多空间,然后才能显示OK。你如何做到这将取决于图像的内容。