昨晚和今早在群里闲逛,又学了一招:通过文件结构解析,提取dwg中的缩略图。这个不需要安装cad,用到的是文件读写操作和结构体的知识。
感谢光庆指导,以及提出这个需求的zyl同学,这里分享给更多的同学。大家有兴趣测试一下,看还有没有什么问题。
import win.ui;
/*DSG{
{*/
var winform = win.form(text="DWG缩略图提取";right=613;bottom=387;border="thin";min=false)
winform.add(
button={cls="button";text="选择DWG图形文件";left=228;top=329;right=368;bottom=377;z=1};
plus={cls="plus";left=36;top=14;right=571;bottom=314;bgcolor=12639424;z=2}
)
/*}}*/
winform.button.oncommand = function(id,event){
//选择文件
import fsys.dlg
var dwgPath=fsys.dlg.open("DWG|*.dwg")
if !dwgPath return ;
//打开文件,也可以用fsys.file
var dwgFile = io.open(dwgPath,"rb");
//读取相关信息
dwgFile.seek("set",13)
var infoPos = dwgFile.read({int v}).v//缩略图描述块的位置
dwgFile.seek("set",infoPos+30)
var picType = dwgFile.read({byte v}).v//缩略图格式,2为BMP格式,3为WMF格式
if picType=1 return ;//其他格式无法处理