Я пытаюсь сохранить изображения в таблице базы данных MS SQL, в которой для типа столбца установлено значение image, цель моего приложения - сохранить загруженные пользователем изображения в базу данных, и пользователи в дальнейшем смогут получать эти изображения из базы данных и при необходимости сохранить на диск.
Я уже написал приведенный ниже код для успешного решения этой задачи, однако при сохранении образа на диск, который извлекается из базы данных, размер файла кажется ниже чем оригинальный размер.
Это, естественно, означает, что качество изображения было уменьшено при сохранении, или я не получаю изображение должным образом.
Этот код используется для получения изображение из базы данных.
Public Function __IMAGE_FROM_STREAM(ByVal img As Object) As Image
__IMAGE_FROM_STREAM = Nothing
If Not IsDBNull(img) Then
Using mStream As New MemoryStream(img, 0, img.Length)
mStream.Write(img, 0, img.Length)
__IMAGE_FROM_STREAM = Image.FromStream(mStream, True)
End Using
End If
Return __IMAGE_FROM_STREAM
End Function
Этот код используется для сохранения переданного изображения в базу данных.
Public Function __IMAGE_TO_STREAM(ByVal image As Image) As Byte()
__IMAGE_TO_STREAM = Nothing
If Not image Is Nothing Then
Using mStream As New MemoryStream
Dim bm As Bitmap = New Bitmap(image)
bm.Save(mStream, image.RawFormat)
__IMAGE_TO_STREAM = mStream.GetBuffer
End Using
End If
Return __IMAGE_TO_STREAM
End Function
This Код используется для сохранения полученного изображения на диск.
sfdExportImage.FileName = "export_" & DateTime.Now.ToString("d").Replace("/", "") & "_" & sender.Tag
If sfdExportImage.ShowDialog() = DialogResult.OK Then
Dim fileName As String = sfdExportImage.FileName
Dim expImage As Image = flpImageContainer.Controls("flpWrap_" & sender.Tag).Controls(0).BackgroundImage
Try
If expImage IsNot Nothing Then
expImage.Save(fileName)
MessageBox.Show("File exported successfully to " & fileName, __COMPANYNAME, MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Catch ex As Exception
__WRITELOG(ex)
End Try
End If
Я посмотрел эту проблему, но у меня не возникло подобных вопросов, я пропустил какие-либо параметры кодирования, с которыми я не работал изображения и их классы много, так что ваши отзывы приветствуются. Спасибо.