EMF изображение в поток Stream - C#
Формулировка задачи:
Здравствуйте, у меня в pictureBox2.Image находится EMF изображение, мне нужно сохранить его в поток, когда в pictureBox2.Image находится BMP-ха, то все нормально сохраняется, вот как делаю
Ошибка:
MemoryStream ms = new MemoryStream(); if (pictureBox2.Image.RawFormat.Equals( System.Drawing.Imaging.ImageFormat.Emf )) pictureBox2.Image.Save( ms, System.Drawing.Imaging.ImageFormat.Emf ); //<-- здесь ошибка else if (pictureBox2.Image.RawFormat.Equals( System.Drawing.Imaging.ImageFormat.Bmp )) pictureBox2.Image.Save( ms, System.Drawing.Imaging.ImageFormat.Bmp );
Value cannot be null. Parameter name: encoder
Решение задачи: «EMF изображение в поток Stream»
textual
Листинг программы
[System.Runtime.InteropServices.DllImport("gdi32")] public static extern int GetEnhMetaFileBits(int hemf, int cbBuffer, byte[] lpbBuffer); public static void SaveMetafile(Metafile mf, string fileName) { int enhMetafileHandle = mf.GetHenhmetafile().ToInt32(); int bufferSize = GetEnhMetaFileBits(enhMetafileHandle, 0, null); // Get required buffer size. byte[] buffer = new byte[bufferSize]; // Allocate sufficient buffer if(GetEnhMetaFileBits(enhMetafileHandle, bufferSize, buffer) <= 0) // Get raw metafile data. throw new SystemException("DoTheTrick.GetEnhMetaFileBits"); using(FileStream ms = File.Open(fileName, FileMode.Create)) ms.Write(buffer, 0, bufferSize); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д