EMF文件分析

本文详细总结了EMF文件的分析过程,包括对象表机制、模拟GDI设备描述表、路径填充和画图填充的实现、位图像素绘制的步骤,以及在重构代码时遇到的挑战和对效率的考虑。通过重构,作者旨在创建一个可重用的EMF读取和绘制引擎,同时探讨了使用SVG替代的可能性和AS内存管理的问题。
摘要由CSDN通过智能技术生成

分析EMF文件以及模拟绘制已经有一段时间了,这里做个总结。然后继续重构雁哥代码。(写代码不写注释会遭雷劈的!!)

MSDN的资料是宝,但只是对于看得懂的人来说。

http://msdn.microsoft.com/en-us/library/cc230565(PROT.13).aspx

 

第一部分:

EMF文件对设备描述表中的对象采用了object table机制。

http://msdn.microsoft.com/en-us/library/cc231165(PROT.10).aspx

 

即在操作了下列几个图元函数后在各自的ihpen,ihbrush,ihfont等(未列出color space, palette)进行编号

1,EMR_EXTCREATEPEN,EMR_CREATEPEN

2,EMR_CREATEBRUSHINDIRECT

3,EMR_EXTCREATEFONTINDIRECTW

 

其号码顺序按照出现前后次序进行编制。例如先创建画笔,则画笔的ihpen = 1.按序下来。

之后直到遇到EMR_DELETEOBJECT,则把object table中的相应号的object删除,之后有新创建的object则填入空缺处。

 

对于这个过程的理解是写分析代码,从数据找出规律。

 

第二部分:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值