如何旋转WMF文件90度

lxlzq 2009-03-30 09:06:31
最近做一程序,涉及到把一个 WMF矢量图像旋转 90度后仍然保存为WMF格式
请高手指点
...全文
247 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
超级绘图王 2011-04-18
  • 打赏
  • 举报
回复
使用超级绘图王软件,它可以将WMF文件分解为基本图元,然后在超级绘图王内可以做任何旋转及进行其它编辑(修改、删除、添加编制、改变图形内图元的属性等),最后再将修改后的结果输出为WMF文件(使用输出为元文件功能)即可,也可以输出为BMP等其它格式。
ahjoe 2009-05-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lxlzq 的回复:]
如果按照2楼的旋转后,虽然可保存为WMF格式,但是里面内部的点线间的数学关系还在吗?
[/Quote]

这样处理完,已经不是矢量图了。
数字蛋糕 2009-05-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lxlzq 的回复:]
如果按照2楼的旋转后,虽然可保存为WMF格式,但是里面内部的点线间的数学关系还在吗?
[/Quote]
2楼的方法没错,你可以新建一个WMF,然后先按照我五楼的方法设置坐标系(你可以在网上找一找相关的文档),然后再把原图直接Draw上去,最后保存的文件就是应该是旋转过的了。
zzwu 2009-05-02
  • 打赏
  • 举报
回复
矢量图的旋转,需要对图中每个矢量作旋转,
图的其余性质(如色彩,填充模式等)均应保持不变;

而每个矢量的旋转,归根到底就是矢量的两个端点进行旋转;

而每个端点(x,y)的旋转,就是把(x,y)换成(y,x)就行了,

应该够简单了。
数字蛋糕 2009-04-30
  • 打赏
  • 举报
回复
看看Get/SetWindowExt以及Get/SetViewportExt,可能还需要Get/SetWindowOrg和Get/SetViewportOrg
这四个函数基本可以满足对坐标变换的需要,但似乎不能影响BitBlt一系的位图操作。
lxlzq 2009-03-30
  • 打赏
  • 举报
回复
如果按照2楼的旋转后,虽然可保存为WMF格式,但是里面内部的点线间的数学关系还在吗?
lxlzq 2009-03-30
  • 打赏
  • 举报
回复
两位大哥,我的意思是 有个WMF文件,我要把它旋转90度后再另存为WMF
WMF是矢量图,不能按像素旋转
jadeluo 2009-03-30
  • 打赏
  • 举报
回复
既然是WMF矢量图,显示时随便怎么转都行,没必要去旋转WMF文件里的数据了。
ljluck7687 2009-03-30
  • 打赏
  • 举报
回复
WMF文件与其他文件一样、没什么区别,关键是旋转算法:
可以对1个像素高、宽度为图像的宽度的这个区域作为一个单位进行90度旋转,用bitblt拷贝到目标位置

如此循环,直至处理完图像的整个高度。最后将目标区域存为WMF文件,旋转就完成了

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧