Растровое изображение из потока: ошибка?
У меня довольно странная ошибка. Мне нужно уменьшить изображения, уменьшить качество и конвертировать в JPEG. Это все работает, когда я сохраняю файл на диске, но это нене работает, когда я сохраняю его в поток.
System.Drawing.Bitmap bitmap = // valid Bitmap from Disk
System.IO.Stream stream = new MemoryStream();
// JPEG Encoding
System.Drawing.Imaging.ImageCodecInfo jpgEncoder = GetEncoder( System.Drawing.Imaging.ImageFormat.Jpeg );
System.Drawing.Imaging.Encoder encoder2 = System.Drawing.Imaging.Encoder.Quality;
System.Drawing.Imaging.EncoderParameters parameters = new System.Drawing.Imaging.EncoderParameters( 1 );
System.Drawing.Imaging.EncoderParameter parameter = new System.Drawing.Imaging.EncoderParameter( encoder2, qualityLevel );
parameters.Param[0] = parameter;
// Save downscaled on Disk and stream
bitmap.Save( stream, jpgEncoder, parameters );
bitmap.Save( @"C:\TestJPEG.jpg", jpgEncoder, parameters );
// some stream stuff
var bytes = ((MemoryStream)stream).ToArray();
System.IO.Stream inputStream = new MemoryStream( bytes );
// Load from disk and stream
Bitmap fromDisk = new Bitmap( @"C:\TestJPEG.jpg" ); // works
Bitmap fromStream = new Bitmap( inputStream ); // crash invalid parameter no inner message or description
Bitmap fromStream2 = (Bitmap)Bitmap.FromStream( inputStream ); // same error here
// also crashes if I load the "stream" named Stream
Я также могу открыть преобразованный файл с помощью Paint. Какие-либо предложения?
Редактировать: яиспользую .Net Framework 4.0 на Windows 7 Professional
Edit2: Пытался что искать вещь (ответ был удален)
stream.Seek( 0, SeekOrigin.Begin );
Работает с "старый» поток. Но мне нужно загрузить его из байтового массива. Все та же авария