#vb.net
#vb.net
Вопрос:
Я получаю эту ошибку, когда конвертирую изображение в байты с помощью MemoryStream. Сначала все работало нормально, но в третий и четвертый раз я получаю эту ошибку.
Public Function getImgByte() As Byte() 'Convert image to array bytes
Dim arrImg() As Byte
ms2 = New MemoryStream()
editStudentPicbox.Image.Save(ms2, System.Drawing.Imaging.ImageFormat.Jpeg) ' Use appropriate format here
arrImg = ms2.ToArray()
ms2.Close()
Return arrImg
End Function
Ответ №1:
Проблема в том, что поток памяти закрыт, но он не удален из памяти. Рекомендуется использовать предложение Using . Попробуйте следующий код:
Public Function getImgByte() As Byte() 'Convert image to array bytes
Using ms2 as New MemoryStream()
editStudentPicbox.Image.Save(ms2, System.Drawing.Imaging.ImageFormat.Jpeg) ' Use appropriate format here
Return ms2.ToArray()
End Using
End Function
Или просто добавьте ms2.Dispose() после ms2.Close(), но вы должны каждый раз объявлять ms2 в этой функции.
Dim ms2 as MemoryStream = New MemoryStream()
Комментарии:
1. не могу попробовать atm, есть другая причина этой ошибки? в первый раз все работало нормально, но со 2-й или 4-й попытки эта ошибка повторяется
2. Просто попробуйте добавить ms2.Dispose() перед возвратом значения