Y yhwyb Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-11 #1 我用image1,在其上作了几条线,用textout输入了几个字,结果存入数据表中,数据库用的accees,blob字段,我试了一下,存为文件是74K,当然放到数据库里也一样大, 问题:怎么做才能使这个图存文件或存数据库,为最小????
我用image1,在其上作了几条线,用textout输入了几个字,结果存入数据表中,数据库用的accees,blob字段,我试了一下,存为文件是74K,当然放到数据库里也一样大, 问题:怎么做才能使这个图存文件或存数据库,为最小????
Z zqw0117 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-11 #3 自定义格式,记录下,线有几条,线条的起始xy坐标,线条的终止xy坐标,文字的文本,文字的输出xy坐标,文字的字体名和大小(可选),只要记录这些信息就可以了,用个自定义格式,要不了1K足够,再按照流写入数据库,读出的时候分析并重新手工画到Image上(或者PaintBox上)即可。这是最简单方法。
自定义格式,记录下,线有几条,线条的起始xy坐标,线条的终止xy坐标,文字的文本,文字的输出xy坐标,文字的字体名和大小(可选),只要记录这些信息就可以了,用个自定义格式,要不了1K足够,再按照流写入数据库,读出的时候分析并重新手工画到Image上(或者PaintBox上)即可。这是最简单方法。
Y yhwyb Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-11 #4 明白你们二位说的,就是不用存为图形文件,用流方法,这样肯定小得多,但我不会用这个方法,能给出例子就好了,给例能用,就给分了,谢谢
Y yhwyb Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-11 #5 忘了说一下,我是在image下画线的,画的是五星,还要写字,如果用流,那在什么控件下做???好象只有用image才行,
U ufo Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-11 #6 image保存为jpg文件(uses jpeg单元),适当设置一下压缩率,这样文件才是最小的。 “流”是什么,就是二进制的数据,二进制数据是什么?所有的文件在硬盘上都是二进制保存的。因此,“流”只是为方便处理数据的一种方式,要减少文件体积,只能在数据压缩方面动脑筋。
image保存为jpg文件(uses jpeg单元),适当设置一下压缩率,这样文件才是最小的。 “流”是什么,就是二进制的数据,二进制数据是什么?所有的文件在硬盘上都是二进制保存的。因此,“流”只是为方便处理数据的一种方式,要减少文件体积,只能在数据压缩方面动脑筋。
Y yhwyb Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-11 #7 谢谢ufo!,你说得太好了,但我试了一下,gif文件比jpg还要小,你说压缩率设置,在哪里??同意你的说法,还是用图好处理些
Y yhwyb Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-11 #8 ufo!真是高手,想交个朋友,我的QQ:3072282
U ufo Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-12 #9 离高手差远了,另外,我不经常上qq的。 至于gif和jpg文件的大小,不能一概而论的,各有千秋。gif是矢量图文件,记得好像只支持256色。jpg是点阵图经有损失压缩而成。 给你个例子,将image内的图片压缩保存到磁盘文件,你修改一下就可以保存到数据库了。注意uses jpeg单元: procedure TPictureView.M_saveimage(filename: string); var Ajpeg:TJPEGImage; begin AJpeg:=TJpegImage.Create; AJpeg.Assign(image1.Picture.Bitmap); AJpeg.CompressionQuality :=80; //质量(1。。100),数字越小,图片体积越小质量越差 AJpeg.Compress; AJpeg.SaveToFile(filename); AJpeg.Free; end;
离高手差远了,另外,我不经常上qq的。 至于gif和jpg文件的大小,不能一概而论的,各有千秋。gif是矢量图文件,记得好像只支持256色。jpg是点阵图经有损失压缩而成。 给你个例子,将image内的图片压缩保存到磁盘文件,你修改一下就可以保存到数据库了。注意uses jpeg单元: procedure TPictureView.M_saveimage(filename: string); var Ajpeg:TJPEGImage; begin AJpeg:=TJpegImage.Create; AJpeg.Assign(image1.Picture.Bitmap); AJpeg.CompressionQuality :=80; //质量(1。。100),数字越小,图片体积越小质量越差 AJpeg.Compress; AJpeg.SaveToFile(filename); AJpeg.Free; end;