Aforge图像旋转产生红色X.

时间:2016-01-23 04:50:30

标签: c# aforge

我正在尝试使用AForge旋转图像。这是代码(在图片框的paint事件方法中):

int radius = 10; 
Image img = new Bitmap("file_path.png");
Bitmap image = new Bitmap(img, radius, radius);

//arbitrary angle of 67
RotateBilinear ro = new RotateBilinear(67, true);
image = ro.Apply(image);
Graphics g = e.Graphics;
g.DrawImage(image, 100, 100);

如果我拿出RotateBilinear线和ro.Apply线它绘制原始图像就好了,但是当我尝试旋转它时,表单的背景变成白色,并且在表单周围有一个红色x的轮廓为红色出现。有人知道这个问题吗?

2 个答案:

答案 0 :(得分:0)

当代码生成异常错误时,您将获得红色X.

我没有看到您分配agentargent.image的位置,但您使用了这些变量/属性。我怀疑你有一些空值或类似的东西,你真的打算写:

image = ro.Apply(image);

因为您最初设置了image并在DrawImage来电中使用了它。

答案 1 :(得分:0)

尝试在代码周围加一个try / catch。

int radius = 10; 
Image img = new Bitmap("file_path.png");
Bitmap image = new Bitmap(img, radius, radius);
//arbitrary angle of 67

try
{
    image = AForge.Imaging.Image.Clone(image, PixelFormat.Format8bppIndexed);
    RotateBilinear ro = new RotateBilinear(67, true);
    image = ro.Apply(image);
}
catch (Exception e)
{ 
    Debug.WriteLine(string.Format("Caught Exception {0}\n{1}", e.GetType(), e.Message);
} 

Graphics g = e.Graphics;
g.DrawImage(image, 100, 100);

如果我的怀疑是正确的,你将使红色x消失,图像将被取消旋转。并且您将在Visual Studio的输出窗口中有一些跟踪语句,告诉您异常类型和异常消息。该信息应该可以让您了解哪些是出错的。