У меня есть эта функция, которая преобразует массив изображений в байты.
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.MemoryBmp);
return ms.ToArray();
}
Это мой код для вызова функции.
private void btn_Click(object sender, EventArgs e)
{
inputPath=textbox1.text;
try
{
System.Drawing.Image img = Image.FromFile(inputPath);
byte[] str= imageToByteArray(img);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Когда я запускаю программу или когда событие запускается, оно выдает исключение с надписью «Недостаточно памяти». Почему это происходит?
Я использую эту функцию для декодирования изображений .jls (изображений, сжатых с использованием алгоритма JPEG-LS). Значит, это явно означает, что файл не поддерживается, верно? Знаете ли вы какие-либо другие альтернативы?