最近做一程序,涉及到把一个 WMF矢量图像旋转 90度后仍然保存为WMF格式
请高手指点

解决方案 »

  1.   

    WMF文件与其他文件一样、没什么区别,关键是旋转算法:
    可以对1个像素高、宽度为图像的宽度的这个区域作为一个单位进行90度旋转,用bitblt拷贝到目标位置如此循环,直至处理完图像的整个高度。最后将目标区域存为WMF文件,旋转就完成了
      

  2.   

    既然是WMF矢量图,显示时随便怎么转都行,没必要去旋转WMF文件里的数据了。
      

  3.   

    两位大哥,我的意思是 有个WMF文件,我要把它旋转90度后再另存为WMF
    WMF是矢量图,不能按像素旋转
      

  4.   

    如果按照2楼的旋转后,虽然可保存为WMF格式,但是里面内部的点线间的数学关系还在吗?
      

  5.   

    看看Get/SetWindowExt以及Get/SetViewportExt,可能还需要Get/SetWindowOrg和Get/SetViewportOrg
    这四个函数基本可以满足对坐标变换的需要,但似乎不能影响BitBlt一系的位图操作。
      

  6.   

    矢量图的旋转,需要对图中每个矢量作旋转,
    图的其余性质(如色彩,填充模式等)均应保持不变;而每个矢量的旋转,归根到底就是矢量的两个端点进行旋转;而每个端点(x,y)的旋转,就是把(x,y)换成(y,x)就行了,应该够简单了。
      

  7.   

    2楼的方法没错,你可以新建一个WMF,然后先按照我五楼的方法设置坐标系(你可以在网上找一找相关的文档),然后再把原图直接Draw上去,最后保存的文件就是应该是旋转过的了。
      

  8.   

    使用超级绘图王软件,它可以将WMF文件分解为基本图元,然后在超级绘图王内可以做任何旋转及进行其它编辑(修改、删除、添加编制、改变图形内图元的属性等),最后再将修改后的结果输出为WMF文件(使用输出为元文件功能)即可,也可以输出为BMP等其它格式。