9 个解决方案
#1
把你画的过程存起来就行了,比如你画了一条100,100 - 200,200的线,是红色的,那么你不用保存那些像素点,而是保存成100100200200255000000,这就表示那条线,当然,这只是个例子,真做工程的时候这个格式肯定是不行滴
#2
将图形的属性(坐标,线型,颜色等)保存到文件当中,或者数据库中,
打开时读数据,画一遍即可
打开时读数据,画一遍即可
#3
// 创建图元文件
TMetafile *FMetafile = new TMetafile();
// 创建图元文件的画布
TMetafileCanvas *pCanvas = new TMetafileCanvas(FMetafile,NULL);
// 然后在 pCanvas 上画线、圈、点,写文字
// ...
delete pCanvas;
// 保存图元文件
FMetafile->SaveToFile(FileName);
TMetafile *FMetafile = new TMetafile();
// 创建图元文件的画布
TMetafileCanvas *pCanvas = new TMetafileCanvas(FMetafile,NULL);
// 然后在 pCanvas 上画线、圈、点,写文字
// ...
delete pCanvas;
// 保存图元文件
FMetafile->SaveToFile(FileName);
#4
一、二楼的方法差不多,不过这样的话我每次重新打开图形文件都得全部重画一遍,是不是太麻烦了,不如从保存好的一幅图中直接调入好吧?
三楼的老兄你的方法无法在桌面上显示图形,是不是还得将pCanvs上的图复制到桌面上来?
我看到过用delphi编的一个实例,它将图形保存成了两个文件,一个是bmp图,另一个我估计是存元件属性的文件(向一、二楼的方法),他们的扩展名如何确定呢,随便取吗,我见过几个例子都不一样。
三楼的老兄你的方法无法在桌面上显示图形,是不是还得将pCanvs上的图复制到桌面上来?
我看到过用delphi编的一个实例,它将图形保存成了两个文件,一个是bmp图,另一个我估计是存元件属性的文件(向一、二楼的方法),他们的扩展名如何确定呢,随便取吗,我见过几个例子都不一样。
#5
向量图的文件一般为两种格式:EMF,WMF;
用iYoung() 的方法你保存为 *.EMF或者*.WMF文件,用ACDSEE就能打开,或者你自己做图象预览也很简单,就跟上面的过程反一下。
用iYoung() 的方法你保存为 *.EMF或者*.WMF文件,用ACDSEE就能打开,或者你自己做图象预览也很简单,就跟上面的过程反一下。
#6
你作画的过程应该在窗体的画布上显示,完成每一个图形后再画到 pCanvas 上。
你开始要求的是保存,但后来似乎还涉及到重新打开,那么思路似乎不太一样。你可以把你的每一次操作(或者每一个图形的属性)保存到一个文件,然后添加导出图元(或位图)功能。这样就大概和那个 delphi 的例子一样了。保存操作的文件的格式需要自己定义,取什么扩展名当然也无所谓了,尽量不和已知扩展名冲突就行了。
你开始要求的是保存,但后来似乎还涉及到重新打开,那么思路似乎不太一样。你可以把你的每一次操作(或者每一个图形的属性)保存到一个文件,然后添加导出图元(或位图)功能。这样就大概和那个 delphi 的例子一样了。保存操作的文件的格式需要自己定义,取什么扩展名当然也无所谓了,尽量不和已知扩展名冲突就行了。
#7
iYoung老兄:
图元文件和bmp文件有何区别,能够像矢量图一样被无限放大缩小后不失真吗?
我最终目的还要能够将其打开任意修改、放大缩小。
图元文件和bmp文件有何区别,能够像矢量图一样被无限放大缩小后不失真吗?
我最终目的还要能够将其打开任意修改、放大缩小。
#8
是一道应聘面试题吧?
#9
图元文件(wmf 或 emf)是一种矢量图。bmp 是一种点阵图。
#1
把你画的过程存起来就行了,比如你画了一条100,100 - 200,200的线,是红色的,那么你不用保存那些像素点,而是保存成100100200200255000000,这就表示那条线,当然,这只是个例子,真做工程的时候这个格式肯定是不行滴
#2
将图形的属性(坐标,线型,颜色等)保存到文件当中,或者数据库中,
打开时读数据,画一遍即可
打开时读数据,画一遍即可
#3
// 创建图元文件
TMetafile *FMetafile = new TMetafile();
// 创建图元文件的画布
TMetafileCanvas *pCanvas = new TMetafileCanvas(FMetafile,NULL);
// 然后在 pCanvas 上画线、圈、点,写文字
// ...
delete pCanvas;
// 保存图元文件
FMetafile->SaveToFile(FileName);
TMetafile *FMetafile = new TMetafile();
// 创建图元文件的画布
TMetafileCanvas *pCanvas = new TMetafileCanvas(FMetafile,NULL);
// 然后在 pCanvas 上画线、圈、点,写文字
// ...
delete pCanvas;
// 保存图元文件
FMetafile->SaveToFile(FileName);
#4
一、二楼的方法差不多,不过这样的话我每次重新打开图形文件都得全部重画一遍,是不是太麻烦了,不如从保存好的一幅图中直接调入好吧?
三楼的老兄你的方法无法在桌面上显示图形,是不是还得将pCanvs上的图复制到桌面上来?
我看到过用delphi编的一个实例,它将图形保存成了两个文件,一个是bmp图,另一个我估计是存元件属性的文件(向一、二楼的方法),他们的扩展名如何确定呢,随便取吗,我见过几个例子都不一样。
三楼的老兄你的方法无法在桌面上显示图形,是不是还得将pCanvs上的图复制到桌面上来?
我看到过用delphi编的一个实例,它将图形保存成了两个文件,一个是bmp图,另一个我估计是存元件属性的文件(向一、二楼的方法),他们的扩展名如何确定呢,随便取吗,我见过几个例子都不一样。
#5
向量图的文件一般为两种格式:EMF,WMF;
用iYoung() 的方法你保存为 *.EMF或者*.WMF文件,用ACDSEE就能打开,或者你自己做图象预览也很简单,就跟上面的过程反一下。
用iYoung() 的方法你保存为 *.EMF或者*.WMF文件,用ACDSEE就能打开,或者你自己做图象预览也很简单,就跟上面的过程反一下。
#6
你作画的过程应该在窗体的画布上显示,完成每一个图形后再画到 pCanvas 上。
你开始要求的是保存,但后来似乎还涉及到重新打开,那么思路似乎不太一样。你可以把你的每一次操作(或者每一个图形的属性)保存到一个文件,然后添加导出图元(或位图)功能。这样就大概和那个 delphi 的例子一样了。保存操作的文件的格式需要自己定义,取什么扩展名当然也无所谓了,尽量不和已知扩展名冲突就行了。
你开始要求的是保存,但后来似乎还涉及到重新打开,那么思路似乎不太一样。你可以把你的每一次操作(或者每一个图形的属性)保存到一个文件,然后添加导出图元(或位图)功能。这样就大概和那个 delphi 的例子一样了。保存操作的文件的格式需要自己定义,取什么扩展名当然也无所谓了,尽量不和已知扩展名冲突就行了。
#7
iYoung老兄:
图元文件和bmp文件有何区别,能够像矢量图一样被无限放大缩小后不失真吗?
我最终目的还要能够将其打开任意修改、放大缩小。
图元文件和bmp文件有何区别,能够像矢量图一样被无限放大缩小后不失真吗?
我最终目的还要能够将其打开任意修改、放大缩小。
#8
是一道应聘面试题吧?
#9
图元文件(wmf 或 emf)是一种矢量图。bmp 是一种点阵图。