频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

向量圖的製作 (Windows MetaFile)

来源: 作者: 出处:巧巧读书 2006-09-09 进入讨论组

  常見的圖形格式有兩大類,一種是點陣圖,譬如 bmp、jpg、gif;另一種是向量圖,譬如 wmf、emf。兩者最大的差別在於向量圖放大或縮小之後不易失真,點陣圖則否。向量圖儲存的是一連串的繪圖指令碼,因此檔案較小,但是每次繪圖的速度可能比較慢。
在 VB 的環境下要製作點陣圖只要在 Form 或 PictureBox 內使用圖形方法來繪圖,並令其 AutoRedraw=True,則其 Image 屬性儲存的就是點陣圖,若要將此點陣圖存檔可使用 SavePicture 方法。在 VB 的環境下要製作向量圖就必須呼叫 API 來幫忙了,以下是製作 Windows Standard MetaFile 最基本的五個步驟:

使用 CreateMetaFile API 取得 device context。

使用任何的 API 繪圖函數,譬如 LineTo、MoveToEx、Ellipse、SetRect、Pie、Chord、Arc、DrawText 等,在剛取得的 device context 上繪圖。

圖形繪製完成後使用 CloseMetaFile API 取得此 MetaFile 的 handle。

使用 PlayMetaFile API 可將繪製好的 MetaFile 顯示於具有 hDc 屬性的控制項上,譬如 PictureBox、Form。

最後使用 DeleteMetaFile API 將 MetaFile 佔用的記憶體釋放出來。

關於 Windows Enhanced Metafile 的製作以及如何將繪製好的 MetaFile 儲存成 *.wmf 或 *.emf 檔案,請參考 ZD Press 出版的 VB5.0 Programmer's Guide To The Win32 API 一書。

以下程式碼置於 Form1。

Private Sub Command1_Click()

Dim dc As Long, DCsize As SIZE, hMF As Long, font As LOGFONT

Dim hFont As Long, oldfont As Long

dc = CreateMetaFile(vbNullString)

'用Windows API 的圖形方法來畫圖 ,以下以輸出文字為例

RtlMoveMemory font.lfFaceName(0), ByVal CStr("新細明體"), _

LenB(StrConv("新細明體", vbFromUnicode)) + 1

font.lfHeight = (8 * 20) / Screen.TwipsPerPixelY

font.lfWidth = (5 * 20) / Screen.TwipsPerPixelY

font.lfCharSet = DEFAULT_CHARSET

hFont = CreateFontIndirect(font)

oldfont = SelectObject(dc, hFont)

TextOut dc, 0, 0, "VB實戰網 http://fly.to/jaric", LenB(StrConv("VB實戰網 http://fly.to/jaric", vbFromUnicode))

hFont = SelectObject(dc, oldfont)

DeleteObject hFont

'將畫好的向量圖顯示在picture1中

hMF = CloseMetaFile(dc)

Picture1.Cls

PlayMetaFile Picture1.hdc, hMF

'將picture1放大成picture3的大小,由於是點陣圖的放大效果,因此有鋸齒現象

Picture3.Cls

StretchBlt Picture3.hdc, 0, 0, Picture3.ScaleWidth, Picture3.ScaleHeight, _

Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, vbSrcCopy

Picture2.Cls

dc = Picture2.hdc

'將畫好的向量圖放大成picture2的大小,由於是向量圖的放大效果,因此沒有鋸齒現象来自:http://www.qqread.com/vb/z238755.html 更多文章 更多内容请看Windows操作系统安装Windows权限设置Windows操作系统安全集专题,或进入讨论组讨论。

收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章