好吧,长话短说。我正在开发类似于UPS交付潜水员使用的设备的软件。我们必须要有方法来获得交货证明(POD)。第一个是签名,第二个是相机拍摄的照片。通过网络服务保存图片
现在,捕获这些图像的设备将它们发送到我们拥有的Web服务,然后将它们保存在服务器上。设备将这两个文件保存为不同的文件类型,png用于签名和图片的jpg,但Web服务将它们保存为jpg文件。目前签名正在工作,但图片不断抛出异常“发生了一般异常gdi +”。
我不明白为什么一个人会保存得很好,但另一个人一直抛出错误信息。特别是因为它们在服务器端时都使用相同的代码。
我走了搜查抛出堆栈溢出,并没有找到任何解决我的问题,我GOOGLE了无济于事。任何人都有什么建议如何让图片保存?
将图像转换为字符串以便将其发送到Web服务的设备逻辑。
**Picture from camera logic**
Using MS As New System.IO.MemoryStream(), BM As New Bitmap(ImagePath)
BM.Save(MS, System.Drawing.Imaging.ImageFormat.Jpeg)
ImageString = Convert.ToBase64String(MS.ToArray())
End Using
**Signature logic**
Using MS As New System.IO.MemoryStream(), BM As New Bitmap(ImagePath)
BM.Save(MS, System.Drawing.Imaging.ImageFormat.png)
ImageString = Convert.ToBase64String(MS.ToArray())
End Using
Web服务逻辑将图像变回字符串,然后将其保存为jpeg。
Dim Image As Drawing.Bitmap = Nothing
Dim ByteImage As Byte()
If ImageString.IsNullOrEmpty = False Then
ByteImage = Convert.FromBase64String(ImageString)
Using stream As New MemoryStream(ByteImage, 0, ByteImage.Length)
stream.Write(ByteImage, 0, ByteImage.Length)
Image = CType(Drawing.Bitmap.FromStream(stream, True), Drawing.Bitmap)
End Using
Image.Save(FileLocation,Drawing.Imaging.ImageFormat.Jpeg)
End If
Image.Save是什么引发异常。
我认为您需要提供具体细节(附带代码示例),以便任何人协助您。 –
我已经添加了一些示例代码。 – GH23