65.9K
CodeProject 正在变化。 阅读更多。
Home

如何从 VB PocketPC 应用程序保存 Bitmap

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.20/5 (4投票s)

2004 年 8 月 16 日

CPOL

1分钟阅读

viewsIcon

45319

downloadIcon

257

如何使用 VB 从 Pocket PC 应用程序保存位图。

引言

在 .NET Framework CE 中缺少许多有用的函数。为了充分利用移动设备的有限资源,仅包含 .NET Framework 的子集。SaveFromFile 函数缺失。虽然有 2 个很好的 C# 示例说明如何执行此操作,但我没有找到任何 VB 的示例。因此,本文档描述了如何在 Pocket PC 上的 VB.NET 中保存和加载位图。

方法 1:在 VB 中将 MS C# 代码用作子项目

C# 中有许多功能不容易转换为 VB。因此,为了避免将所有内容翻译成 VB 并拥有 2 个版本来控制,我只是将 Microsoft 的 C# 示例 作为子项目包含进来。按照以下步骤操作:

  1. 打开需要位图功能的 VB Pocket PC 项目
  2. 右键单击解决方案,选择“添加”,然后选择“现有项目”。

  3. 选择 ImageEditor.csdproj
  4. 右键单击 Image Editor 子项目,选择“属性”。
  5. 将输出类型更改为“类库”。

  6. 右键单击 Image Editor 并构建。
  7. 单击 VB 项目的“引用”文件夹,然后添加引用。

  8. 在要保存位图的窗体中添加
    Imports ImageEditor
            

    要保存位图

    SaveFileDialog1.Filter = "Bitmap files (*.bmp)|*.bmp"
       If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
          Me.pDrawWindow.Refresh()
          ImageEditor.BitmapFile.SaveToFile(Me.pDrawWindow, 
    SaveFileDialog1.FileName, 16, Me.bitmap.Width, Me.bitmap.Height)
       End If
              

    要加载位图

    OpenFileDialog1.Filter = "Bitmap files (*.bmp)|*.bmp"
       If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
          Application.DoEvents()
    
          Cursor.Current = Cursors.WaitCursor
          Dim s As Stream = File.OpenRead(OpenFileDialog1.FileName)
          Me.bitmap = New Bitmap(s)
          s.Close()
    
          Me.pDrawWindow.Invalidate()
          Cursor.Current = Cursors.Default
    
       End If
              

方法 2:直接从 VB 写入位图文件结构

这种方法非常慢,我不建议使用。我将其包含进来是因为它展示了在使用前面示例中的 P/Invoke 方面的性能优势。该方法基于来自 此处 的 C# 示例。

© . All rights reserved.