将BitmapImage转换为Byte数组并将其存储到Sql数据库中

时间:2014-11-13 09:09:06

标签: asp.net .net vb.net

我想将位图图像存储到字节,但在运行时我收到错误,如

  

从类型图像格式转换为类型整数无效

请任何人帮助我

For Each file As UploadedFile In` DOC.UploadedFiles`
                Context.Cache.Remove(Session.SessionID + "UploadedFile")
                Dim stream As Stream = file.InputStream
                GenerateThumbnails(0.5, stream)

                Dim DocumentImgName = file.FileName
                Dim imgData As Byte() = New Byte(ViewState("CompressedImageData")) {}
                Dim DocumentSplit = DocumentImgName.Split(".")

                Dim ImgName = DocumentSplit(0)
                Dim ImgExt = DocumentSplit(1)

                stream.Read(imgData, 0, imgData.Length)

                ViewState("imgData") = imgData
                ViewState("FileName") = ImgName
                ViewState("FileExtension") = ImgExt

                Dim ms As New MemoryStream()

                ms.Write(imgData, 0, imgData.Length)
   Next

Private Sub GenerateThumbnails(ByVal scaleFactor As Double, ByVal sourcePath As Stream)

   Using image__1 = Image.FromStream(sourcePath)

            ' can given width of image as we want
            Dim newWidth = CInt(image__1.Width * scaleFactor)

            ' can given height of image as we want
            Dim newHeight = CInt(image__1.Height * scaleFactor)

            Dim thumbnailImg = New Bitmap(newWidth, newHeight)
            Dim thumbGraph = Graphics.FromImage(thumbnailImg)

            thumbGraph.CompositingQuality = CompositingQuality.HighQuality
            thumbGraph.SmoothingMode = SmoothingMode.HighQuality
            thumbGraph.InterpolationMode = InterpolationMode.HighQualityBicubic

            Dim imageRectangle = New Rectangle(0, 0, newWidth, newHeight)

            thumbGraph.DrawImage(image__1, imageRectangle)

            ViewState("CompressedImageData") = image__1.RawFormat

        End Using
    End Sub

1 个答案:

答案 0 :(得分:0)

您可以将图像数据转换为Byte数据类型后存储,如下所示:

Dim ms As New Syste.IO.MemoryStream
Me.PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
Dim byteImage() As Byte = ms.ToArray

然后您可以将byteImage()存储到其类型为Image Or Varbinary的字段中。