65.9K
CodeProject is changing. Read more.
Home

How to save Bitmaps from a VB PocketPC application

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.20/5 (4 votes)

Aug 16, 2004

CPOL

1 min read

viewsIcon

44930

downloadIcon

224

How to save Bitmaps from Pocket PC applications using VB.

Introduction

There are a number of useful functions that are missing in the .NET Framework CE. To make the most of the limited resources on mobile devices only subset of the .NET Framework have been included. The Save and FromFile functions are missing. There are 2 good examples how to do this in C# but I have not found any examples how to do this in VB. Therefore this article describes how to save and Load Bitmaps in VB.NET on a Pocket PC.

Method 1: Using the MS C# Code in VB as a Subproject

There are a number of features in C# that are not so easily converted to VB. So rather than translate everything into VB and have 2 versions to control I have just included the C# example from Microsoft as a sub project. This is done by following this recipe:

  1. Open the VB Pocket PC that requires the Bitmap functions
  2. Right mouse click on the Solution and select Add then Existing project

  3. Select the ImageEditor.csdproj
  4. Right mouse click on the Image Editor subproject and select properties
  5. Change Output Type to Class Library

  6. Right mouse click on the Image Editor and Build
  7. Click on the References folder of the VB project and Add Reference

  8. In the form where you would like to save the bitmap add
    Imports ImageEditor
            

    To save the bitmap

    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
              

    To load the bitmap

    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
              

Method 2: Write the Bitmap file structure directly from VB

This method is really slow and I would not recommend that this be used. I have included it because it shows the performance benefits of using P/Invoke in the previous examples. This based on a C# example from an example from here