Software 版 (精华区)

发信人: checcy (老巴夺), 信区: Software
标  题: Web 动 画 图 像 分 解 在VB 动 画 设 计中 的 应 用 
发信站: 哈工大紫丁香 (Mon Apr  6 12:08:36 1998), 转信

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

          武 汉 水 利 电 力 大 学 计 算 机 系 
                  ---- 何 清 珍---- 黄 可 

---- 笔 者 每 次 浏 览Web 网 页 时, 总 是 被 许 多 生 动 有
趣 的 小 动 画 深 深 吸 引, 十 分 佩 服 作 者 的 想 象 力 和
制 作 技 巧。 在 使 用VB 进 行 应 用 软 件 开 发 设 计 中, 为
使 软 件 的 人 机 界 面 新 颖 友 好, 总 想 加 点 动 画 作 点
缀, 但 又 常 常 苦 于 一 幅 幅 动 画 图 片 的 绘 制 或 寻 找!
因 此 萌 发 了 一 种 奇 妙 的 设 想: 能 否 让Web 页 面 上 的
动 画 在VB 应 用 软 件 界 面 上 活 起 来? 幸 运 的 是, 当 前
图 像 处 理 软 件 甚 多, 终 于 将 笔 者 的 这 一 设 想 变 成
了 现 实。 

VB 动 画 设 计 

---- 动 画 的 制 作 原 理 很 简 单: 首 先 绘 制 几 幅 相 近
但 又 有 细 微 变 化 的 图 片, 然 后 每 隔 一 段 很 短 的 时
间 就 依 次 显 示 其 中 一 幅, 由 于 人 眼 视 觉 暂 留, 就
能 看 到 连 贯 的 动 画 效 果。 

---- 使 用VB 进 行 动 画 设 计 非 常 方 便, 因 为 其 工 具 箱
中 有 图 像、 图 片、 时 钟 控 件。 只 要 获 得 了 一 幅 幅 动
画 单 幅 图 像 文 件, 把 它 们 放 入 图 像 控 制 数 组 中 
去, 便 可 用 时 钟 控 件 的 控 制 属 性Interval 来 控 制 每
幅 图 片 的 显 示 间 隔, 把 最 终 动 画 显 示 的 位 置 确 定
好 后, 按 时 间 间 隔 依 次 从 图 像 控 制 数 组 中 取 出 一
幅 图 显 示。 如 此 交 替 反 复 显 示, 即 可 产 生 动 画 效
果, 编 程 实 现 比 较 简 单。 

---- VB 动 画 设 计 所 能 接 收 的 单 幅 图 片 文 件 的 格 式
有 四 种, 即 *.Bmp、 *.Ico、 *.Wmf 和 *.Dib。 其 中 
*.Bmp 文 件 的 来 源 最 广, 不 但 可 以 使 用Windows 环 境
下 的 各 种 绘 图 软 件 来 绘 制( 但 费 时 费 力, 且 不 是 每
个 人 都 有 绘 画 的 天 才), 也 可 以 使 用Windows 所 提 供
的 现 成 的 位 图 文 件, 或 者 用 彩 色 扫 描 仪 扫 入 等 
等。 在 此, 笔 者 所 感 兴 趣 的 则 是 从Internet 上Web 站 点
网 页 上 下 载 自 己 喜 爱 的 动 画 图 像 文 件, 再 经 过 图
形 软 件 分 解、 处 理 成 一 幅 幅 *.Bmp 图 片 文 件, 它 们
会 给 软 件 的 人 机 界 面 带 来 全 新 的 感 受。 

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
与 软 件 编 程 联 系 起 来, 无 疑 提 高 了 应 用 软 件 的 制
作 效 率 和 质 量。 


-- 
*********************************
Chengyan Che - Software Freelancer
Harbin, P.R.China
mailto: checcy@public.hr.hl.cn
ICQ: 5116726

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: checcy@public.hr.hl.]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.157毫秒