不要保存文件!
http://www.csdn.net/Expert/TopicView1.asp?id=579368
中有一个
将数据转换为图片的类!
即用IUnknown编程例子的一个!

解决方案 »

  1.   

    创建临时文件 在Visual Basic 中 开 发 应 用 程 序 的 时 候, 可 能 会 需 要 在 磁 盘 上 创 建 一 个 临 时 目 录, 本 文 将 介 绍 如 何 在Visual Basic 版 本4.0 中 创 建 临 时 文 件。 使 用GetTempFileName 函 数 ---- 可 以 通 过 使 用API 函 数 中 的GetTempFileName 函 数 来 在 一 个 指 定 的 磁 盘 驱 动 器 上 创 建 一 个 新 的 文 件。 尽 管 所 创 建 的 文 件 是 一 个 临 时 的 文 件, 当 不 再 需 要 它 的 时 候, 程 序 员 还 是 需 要 将 它 从 磁 盘 上 物 理 地 删 除 掉。 ---- 要 在VB 中 使 用GetTempFileName 函 数, 必 须 将 如 下 的 声 明 语 句 包 含 在 程 序 中( 注 意 该 声 明 语 句 需 要 被 书 写 在 一 行 内): ---- Private Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long ---- 该GetTempFileName 函 数 需 要4 个 参 数: ---- 第 一 个 参 数 是 希 望 创 建 新 文 件 的 驱 动 器 和/ 或 路 径 的 名 称, 在 下 面 的 样 例 程 序 中, 新 文 件 创 建 在 驱 动 器C 的 根 目 录 下。 ---- 第 二 个 参 数 是 指 派 给 文 件 名 称 的 前 缀。 ---- 第 三 个 参 数 应 该 被 设 置 为0, 告 诉 该 函 数 为 文 件 名 称 自 动 产 生 随 机 号 码。 该 随 机 号 码 然 后 被 添 加 到 前 缀 字 符 的 后 面 以 产 生 一 个 独 特 的 和 完 整 的 文 件 名 称。 ---- 第 四 个 参 数 是 一 个 字 符 串 缓 存, 它 至 少 要 有256 个 字 符 的 长 度, 以 存 放 临 时 文 件 的 名 称。 在 调 用 该 函 数 之 后, 新 文 件 创 建 在 指 定 的 磁 盘 上。 这 里 重 申 一 下, 当 退 出 应 用 程 序 时, 必 须 物 理 地 将 该 文 件 从 磁 盘 上 删 除。 样 例 程 序 ---- 该 程 序 显 示 了 如 何 在VB 应 用 程 序 中 创 建 一 个 临 时 文 件。 ---- 1. 在Visual Basic 中 开 始 一 个 新 的 工 程, 采 用 缺 省 的 方 法 建 立Form1。 ---- 2. 将 如 下 声 明 语 句 添 加 到Form1 的 通 用 声 明 部 分 中( 注 意 该 声 明 语 句 需 要 被 书 写 在 一 行 内): ---- Private Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long ---- 3. 将 如 下 代 码 添 加 到Form1 的Form_Load 事 件 中: Private Sub Form_Load()Text1.TEXT = ""End Sub---- 4. 在Form1 上 添 加 一 个 文 本 框 控 件, 采 用 缺 省 的 方 法 建 立Text1。 ---- 5. 在Form1 上 添 加 一 个 命 令 按 钮 控 件, 采 用 缺 省 的 方 法 建 立Command1。 ---- 6. 将 如 下 的 代 码 添 加 到Command1 的 单 击 事 件 中: Private Sub Command1_Click()Dim FilePrefix As StringDim NewFile As String * 256FilePrefix = "TEST"NewFile = GetTempName(FilePrefix)Text1.TEXT = NewFileEnd Sub---- 7. 创 建 一 个 新 的 名 为GetTempName 的 函 数, 将 如 下 代 码 添 加 到 该 函 数 中: Private Function GetTempName(TmpFilePrefix As String) As StringDim TempFileName As String * 256Dim X As LongDim DriveName As StringDriveName = "c:\"X = GetTempFileName(DriveName, TmpFilePrefix, 0, TempFileName)GetTempName = Left$(TempFileName, InStr(TempFileName, Chr(0)) - 1)End Function---- 按 下F5 键, 执 行 样 例 程 序。 单 击 命 令 按 钮, 在 驱 动 器C 的 根 目 录 下 创 建 一 个 新 的 临 时 文 件。 该 新 创 建 的 文 件 的 名 称 被 显 示 在 文 本 框 控 件 中