Code: Select all
Dim ofd As New OpenFileDialog
ofd.Multiselect = True
Dim itop As Integer = 0
Imaging1.ReleaseGdPictureImage(PrimaryImageID)
PrimaryImageID = 0
If ofd.ShowDialog = DialogResult.OK Then
For Each fn As String In ofd.FileNames
If PrimaryImageID = 0 Then
PrimaryImageID = Imaging1.CreateGdPictureImageFromFile(fn)
itop = Imaging1.GetHeight(PrimaryImageID)
Imaging1.SetVerticalResolution(PrimaryImageID, 300)
Imaging1.SetHorizontalResolution(PrimaryImageID, 300)
Else
Imaging1.ReleaseGdPictureImage(TempImageID)
TempImageID = Imaging1.CreateGdPictureImageFromFile(fn)
Imaging1.AddBorderBottom(PrimaryImageID, Imaging1.GetHeight(TempImageID), Color.White)
If Imaging1.GetStat <> GdPicture12.GdPictureStatus.OK Then MsgBox(Imaging1.GetStat.ToString)
If Imaging1.GetWidth(TempImageID) > Imaging1.GetWidth(PrimaryImageID) Then Imaging1.AddBorderRight(PrimaryImageID, Imaging1.GetWidth(TempImageID) - Imaging1.GetWidth(PrimaryImageID), Color.White)
If Imaging1.GetStat <> GdPicture12.GdPictureStatus.OK Then MsgBox(Imaging1.GetStat.ToString)
Imaging1.DrawGdPictureImage(TempImageID, PrimaryImageID, 0, itop - 1, Imaging1.GetWidth(TempImageID), Imaging1.GetHeight(TempImageID), Drawing2D.InterpolationMode.Low)
Imaging1.ConvertTo1BppFast(PrimaryImageID)
Imaging1.ReleaseGdPictureImage(TempImageID)
itop = Imaging1.GetHeight(PrimaryImageID)
End If
If Imaging1.GetStat <> GdPicture12.GdPictureStatus.OK Then MsgBox(Imaging1.GetStat.ToString)
Viewer1.DisplayFromGdPictureImage(PrimaryImageID)
Next
Viewer1.DisplayFromGdPictureImage(PrimaryImageID)
End If
My Dev box is running 16GB with 11GB free when starting the application, I have tested the code on production servers with 32/64GB with the same effect.
Any help yo can provide would be greatly appreciated.
- Andrew