Aforge 图像旋转导致红色 X
Aforge Image Rotation results in a red X
我正在尝试使用 AForge 旋转图像。这是代码(在图片框的绘制事件方法中):
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 的轮廓为表格周围出现红色。有人知道这个问题吗?
当代码生成异常错误时,您会得到红色的 X。
我没看到你在哪里分配了 agent
或 argent.image
,但你使用了这些 variables/properties。我怀疑你有一些空值或类似的东西,你真的想写:
image = ro.Apply(image);
因为您最初设置了 image
并在 DrawImage
调用中使用了它。
尝试在您的代码周围加上 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 消失,图像将被渲染 un-rotated。并且您将在 Visual Studio 中输出 window 中有一些跟踪语句告诉您异常类型和异常消息。这些信息应该可以让您了解问题出在哪里。
我正在尝试使用 AForge 旋转图像。这是代码(在图片框的绘制事件方法中):
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 的轮廓为表格周围出现红色。有人知道这个问题吗?
当代码生成异常错误时,您会得到红色的 X。
我没看到你在哪里分配了 agent
或 argent.image
,但你使用了这些 variables/properties。我怀疑你有一些空值或类似的东西,你真的想写:
image = ro.Apply(image);
因为您最初设置了 image
并在 DrawImage
调用中使用了它。
尝试在您的代码周围加上 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 消失,图像将被渲染 un-rotated。并且您将在 Visual Studio 中输出 window 中有一些跟踪语句告诉您异常类型和异常消息。这些信息应该可以让您了解问题出在哪里。