动画图像分解在VB动画设计中的应用

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

---- 笔 者 每 次 浏 览Web 网 页 时, 总 是 被 许 多 生 动 有 趣 的 小 动

画 深 深 吸 引, 十 分 佩 服 作 者 的 想 象 力 和 制 作 技 巧。 在 使 用

VB 进 行 应 用 软 件 开 发 设 计 中, 为 使 软 件 的 人 机 界 面 新 颖

友 好, 总 想 加 点 动 画 作 点 缀, 但 又 常 常 苦 于 一 幅 幅 动 画 图

片 的 绘 制 或 寻 找! 因 此 萌 发 了 一 种 奇 妙 的 设 想: 能 否 让Web

页 面 上 的 动 画 在VB 应 用 软 件 界 面 上 活 起 来? 幸 运 的 是, 当

前 图 像 处 理 软 件 甚 多, 终 于 将 笔 者 的 这 一 设 想 变 成 了 现

实。

VB 动 画 设 计 ---- 动 画 的 制 作 原 理 很 简 单:

首 先 绘 制 几 幅 相 近 但 又 有 细 微 变 化 的 图 片, 然 后 每 隔 一

段 很 短 的 时 间 就 依 次 显 示 其 中 一 幅, 由 于 人 眼 视 觉 暂 留,

就 能 看 到 连 贯 的 动 画 效 果。 ---- 使 用VB 进 行 动 画 设 计 非 常

方 便, 因 为 其 工 具 箱 中 有 图 像、 图 片、 时 钟 控 件。 只 要 获

得 了 一 幅 幅 动 画 单 幅 图 像 文 件, 把 它 们 放 入 图 像 控 制 数

组 中 去, 便 可 用 时 钟 控 件 的 控 制 属 性Interval 来 控 制 每 幅 图

片 的 显 示 间 隔, 把 最 终 动 画 显 示 的 位 置 确 定 好 后, 按 时 间

间 隔 依 次 从 图 像 控 制 数 组 中 取 出 一 幅 图 显 示。 如 此 交 替

反 复 显 示, 即 可 产 生 动 画 效 果, 编 程 实 现 比 较 简 单。 ----

VB 动 画 设 计 所 能 接 收 的 单 幅 图 片 文 件 的 格 式 有 四 种, 即

*.Bmp、 *.Ico、 *.Wmf 和 *.Dib。 其 中 *.Bmp 文 件 的 来 源 最 广,

不 但 可 以 使 用Windows 环 境 下 的 各 种 绘 图 软 件 来 绘 制( 但 费

时 费 力, 且 不 是 每 个 人 都 有 绘 画 的 天 才), 也 可 以 Web 动 画

图 像 分 解 方 法 ---- 从Web 网 页 上 下 载 静 态 图 像 文 件 比 较 简

单, 下 载 后 需 要 进 行 分 解。 ---- 动 画 图 像 文 件 的 分 解 是 动

画 设 计 的 逆 过 程, 即 把 一 个 动 画 效 果 的 图 像 文 件 分 解 形

成 它 的 多 幅 图 片 文 件。 可 使 用GIF Construction Set 软 件 打 开(

此 软 件 可 在 许 多 服 务 器 上 下 载) 要 分 解 的 图 像 文 件, 该 软

件 即 可 将 动 画 自 动 分 解 为 多 幅 组 成 动 画 的 单 幅 图 画。 ----

使 用 上 述 软 件 分 解 后, 首 先 看 看 是 由 几 幅 图 画 组 成 的 动

画, 如 果 有N 幅 图 画, 就 把 动 画 文 件 拷 贝N 份。 ---- 然 后, 逐

个 打 开 拷 贝 文 件 对 每 个 文 件 进 行 处 理, 处 理 过 程 中 只 需

在 第 一 个 文 件 中 保 留 静 止 的 图 像, 在 其 它 文 件 中 只 保 留

动 画 图 像。 ---- 最 后, 使 用 具 有 图 形 转 换 功 能 的 图 形 处 理

软 件 如Phtoshop, 就 可 把 得 到 的N 个 *.Gif 图 像 文 件 都 转 换 成

*.Bmp 文 件 的 格 式。 ---- Web 动 画 分 解 过 程 概 括 描 述 如 下: -

--- Web 动 画 下 载 →Web 动 画 分 解(GIF Construction Set) →Web 动 画

格 式 转 换(Phtoshop 等)。 一 个 实 例 ---- 这 是 一 个 在 数 据 库 查

询 窗 体 上 设 计 的 眼 睛 转 动 查 看 的 动 画, 此 动 画 的 每 个 单

幅 图 画 就 是 从Web 网 页 上 下 载 分 解 得 到 的。 ---- 动 画 设 计 实

现 步 骤 如 下: ---- 首 先, 用 上 述 方 法 把Web 网 页 上 转 眼 睛 动

画 下 载 保 存、 分 解、 格 式 转 换 成 二 幅 画Eyesl.Bmp 和Eyes2.Bmp(

此 动 画 简 单, 只 由 二 幅 画 组 成)。 ---- 其 次, 将Eyes1.Bmp 和

Eyes2.Bmp 放 入 图 像 控 制 数 组 中。

---- 程 序 代 码 如 下:

在窗体的General中声明:

Dim Rotateflag as Integer ’交替显示标志

Dim Currenteyes as Integer ’当前显示第几幅画

窗体装载初始化:

Sub Form_Load()

Rotateflag=1 ’进入显示(时钟计数开始)

Currenteyes=0 ’第一幅画定位

End Sub

交替显示子程序(时钟控制显示间隔,本例为250ms):

Sub Tmrtimer_Timer()

If Rotateflag=1

Then ’交替显示开始 SImgeyes.Picture=Imgeyes(Currenteyes).Picture ’开始显

示第一幅画

Currenteyes=Currenteyes+1 ’250ms后显示下一幅

If Currenteyes=2 Then Currenteyes=0 ’如果已显示了两幅,则再从第一幅显示

End If

End If

End Sub

结 束 ---- 利 用Web 网 页 动 画 图 像 分 解 成 的 多 个 单 幅 图 画, 不

但 可 以 为VB 动 画 设 计 提 供 方 便, 也 可 用 于VC 等 动 画 编 程。

目 前,Internet 的 范 围 日 益 扩 大, 使Web 与 软 件 编 程 联 系 起 来,

无 疑 提 高 了 应 用 软 件 的 制 作 效 率 和 质 量。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航