jerryhuang 发表于 2004-3-12 13:41:00

请问如何在AUTOCAD外部,通过读取DWG文件格式,提取预览图片数据?

我想在LISTCTRL里显示DWG文件的预览图。哪位仁兄能帮帮忙,在此先谢了!

victory 发表于 2004-3-18 17:05:00

有几种方式可以实现:


1        使用 ActiveX Automation 接口,增加 DWGThumbnail 控件。


2        使用 Autodesk 提供的 DwgX Control。


3 从 DWG 文件中直接提取预览图片数据。如果设 DWG 文件的起始偏移量为0,则在第13字节处是一个长整数类型的指针,指向预览图片特征字段(sentinel)的开始位置。特征字段的长度为16字节。在特征字段之后,是一个4字节的长整数,它说明的是除特征字段之外整个预览图片数据的长度。再向下,是说明预览图片数量的一个单字节整数。根据预览图片数量的不同,后面是一至三组数据描述块,每一块由9个字节组成,第一个字节是图片的类型,2-5字节是图片的其实位置,6-9字节是图片的大小。图片类型字节可以取值1,2或3。取值为1时说明是图形的描述内容,它的长度至少需要有80字节,即使实际使用的部分不足80字节,系统也会为他保留80字节。当取值为2时说明是 BMP 图片。在 DWG 文件中保存的 BMP 图片可是任何满足 BMP 规范的图象文件数据,但是不保存 BITMAPFILEHEADER 数据。AuotCAD 系统保存的 BMP 图象数据是256色图象数据并使用 BI-_RLE8 格式压缩。图片类型字节取值为3时说明是 WMF 文件,它带有22字节长的Aldus文件头。在数据描述块的后面是所有既存的预览图片数据,随后跟随的是16字节按位取反的特征字节。


特征字段内容为:OX1F,OX25,OX6D,OX07,OXD4,OX36,OX28,OX28,OX9D,OX57,OXCA,OX3F,OX9D,OX44,OX10,OX2B
页: [1]
查看完整版本: 请问如何在AUTOCAD外部,通过读取DWG文件格式,提取预览图片数据?