===============GDI+======================
下面的代码是我写的一个类似于股票图的代码,大意是在一个底稿上画2条曲线,一个标准值,一个检测值,并画出x和y的坐标轴刻度和图例。
方法可以正常运行,也能得到图像,在win2003的机器上,总是在程序运行很久以后(如这个方法运行结束了几分钟后)提示GDI+错误,在Winxp上就很少有提示,至少我测试的机器上没出过。
谁能帮我分析分析是怎么回事呢,或者这种不是实时出现的错误怎么测试呢。
方法可以正常运行,也能得到图像,在win2003的机器上,总是在程序运行很久以后(如这个方法运行结束了几分钟后)提示GDI+错误,在Winxp上就很少有提示,至少我测试的机器上没出过。
public static Bitmap writeImage(Bitmap image,double[] dubleY1, double[] DubleY2, int[] xLine1,int[] xLine2, double yStart, double yUnit, int xUnit, string yName,int tt,int xStart)
{
Pen p1 = Pens.Blue; //写图例的画笔
Pen p2 = Pens.Red;
Brush bs1 = Brushes.Blue; //画线用的
Brush bs2 = Brushes.Red;
int[] y1 = getYpoint1(dubleY1, yStart, yUnit); //Y轴的坐标点
int[] y2 = getYpoint1(DubleY2, yStart, yUnit); //Y轴的坐标点
//Bitmap image = Resource2.KT3;//线图底稿
Bitmap newimage = new Bitmap(image.Width, image.Height);
Graphics oGraphic = Graphics.FromImage(newimage);
Point p00 = new Point(0, 0);
oGraphic.DrawImage(image, p00);
image.Dispose();
image = newimage;
Point[] py1 = new Point[y1.Length];
Point[] py2 = new Point[y2.Length];
……这里有一段得到Y 点数组的代码,取得每个Y点的位置
using (Graphics g = Graphics.FromImage(image)) //在背景图上画 折线图
{
if (py1.Length > 1)
{
g.DrawLines(p1, py1);//标准值 曲线
}
if (py2.Length > 1)
{
g.DrawLines(p2, py2);//检测值 曲线
}
//画y轴坐标
for (int i = 0; i <7; i++)
{
double iYvalue = yStart + yUnit * 20 * i;
g.DrawString(iYvalue.ToString("0.00"), ft, bs2, theYs[i]);
}
//画x轴坐标
for (int i = 0; i <5; i++)
{
string xValue = "0";
int theXvalue = (i * xUnit + 1) * 50;
xValue = Convert.ToInt32(i * 5 * xUnit+xStart).ToString();
g.DrawString(xValue, ft, Brushes.White, theXs[i]);
}
//画出图例
int leng = yName.Length;
Point pA;
Point pB;
switch (tt)
{
case 0:
pA = new Point(700, 20);
pB = new Point(700, 35);
^ default:
pA = new Point(1820, 1160);
pB = new Point(1820, 1175);
break;
}
g.DrawString("[" + yName + ":标准值]", ft2, bs1, pA);
g.DrawString("[" + yName + ":检测值]", ft2, bs2, pB);
}
return image;
}
谁能帮我分析分析是怎么回事呢,或者这种不是实时出现的错误怎么测试呢。
...全文
相关推荐
GDI GDI+从入门到精通
GDI+的进阶特性:GDI+在GDI的基础上做了许多改进,引入了类库的形式,使得编程更加面向对象。以下是一些主要特性:1. 矢量图形:GDI+支持矢量图形,这意味着图形可以无损缩放,保持清晰度不变。
GDI和GDI+动画程序
在"GDI和GDI+动画程序"这个例子中,我们可以通过两个独立的界面来观察和比较GDI与GDI+在动画制作上的差异。
GDI介绍、GDI+的SDK及SDK 教程
安装GDI+ SDK后,开发者可以获得详细的API参考,帮助理解并使用GDI+的各种功能。
智圆行方GDI-GDI+模块
《智圆行方GDI-GDI+模块:深入解析与应用》在计算机图形处理领域,GDI(Graphics Device Interface)和GDI+是Windows操作系统中的两种重要技术,用于实现图形绘制、文本渲染以及图像处理等功能
GDI+游戏GDI+游戏GDI+游戏GDI+游戏GDI+游戏GDI+游戏
**GDI+基础概念** - GDI+是对传统GDI(Graphics Device Interface)的增强,提供了更丰富的绘图功能和更高的性能。


