📄 如何将stretch=true的imagebox控件图像存盘.txt
字号:
你 这 个 问 题 令 我 有 点 困 惑 。 因 为 ImageBox就 是 使 用 StrechBlt实 现 的 , 应 该 说 两 个 方 法 的 效 果 是 一 样 的 。 之 所 以 会 产 生 不 同 , 我 想 可 能 有 以 下 几 个 原 因 :
1、 使 用 ImageBox时 , 你 可 以 手 工 调 整 大 小 , 直 到 满 意 为 止 , 这 样 图 像 大 小 选 择 比 较 合 适 。 而 使 用 StrechBlt时 , 缩 放 比 例 不 合 适 。
2、 你 观 察 存 盘 后 的 图 像 文 件 时 , 不 是 按 照 1比 1的 比 例 观 察 的 。 位 图 的 一 个 缺 点 就 是 缩 放 后 失 真 , 如 果 你 观 察 时 不 是 采 用 1比 1的 比 例 , 就 等 于 两 次 缩 放 , 两 次 失 真 , 所 以 你 感 觉 上 图 像 质 量 不 好 , 但 实 际 上 是 一 样 的 。 要 想 提 高 缩 放 后 的 图 像 质 量 , 最 重 要 的 是 减 少 缩 放 次 数 。
在 这 里 我 介 绍 一 种 将 缩 放 后 的 图 像 存 盘 的 方 法 , 这 种 方 法 同 你 的 方 法 可 能 没 有 实 质 的 不 同 , 我 只 是 想 借 助 这 个 例 子 说 明 , 只 要 你 使 用 StrechBlt正 确 , 是 不 会 出 现 你 说 的 情 况 的 。
先 准 备 一 个 ImageBox, 调 整 尺 寸 , 直 到 你 满 意 。
再 准 备 一 个 PictureBox。
然 后 加 上 一 个 按 钮 , 输 入 以 下 代 码 。
Private Sub Command1_Click()
Picture1.AutoRedraw = True
Picture1.PaintPicture Image1.Picture, 0, 0, Image1.Width, Image1.Height
Picture1.Picture = Picture1.Image
Picture1.AutoRedraw = False
SavePicture Picture1.Picture, "c:\test.bmp"
End Sub
这 个 例 子 将 Image1中 的 图 像 按 照 Image1的 尺 寸 复 制 到 Picture1中 , 然 后 再 存 盘 。
<END>
WINDOWS的 色 板 是 因 显 示 颜 色 数 不 同 而 变 化 的 , 显 示 的 图 片 其 实 存 在 于 与 设 备 有 关 的 MemoryDC中 ,它 与 色 板 一 一 对 应 , 所 以 保 存 ImageBox的 图 片 时 , 如 果 系 统 显 示 颜 色 为 8BIT那 么 所 保 存 的 图 片 就 是 一 个 256色 的 图 片 … … 。
还 有 , WINDOWS所 提 供 的 GUI图 像 处 理 函 数 没 有 “ 消 锯 齿 ” 功 能 , 图 像 缩 放 之 后 色 差 或 反 差 较 强 的 图 像 边 缘 有 明 显 的 锯 齿 。
我 想 这 是 质 量 下 降 的 主 要 原 因 。
这 类 处 理 造 成 图 像 质 量 下 降 根 本 就 属 难 免 , 就 算 用 第 三 方 控 件 , 也 没 有 消 锯 齿 功 能 , 至 少 我 未 见 过 。 “ 一 室 ” 朋 友 还 是 将 就 吧 !
<END>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -