2016-01-29 1 views
0

Я пытаюсь преобразовать мои изображения gif/png в jpeg, после чего я хочу передать эти изображения в sqldatabase. Поскольку хрустальный отчет не поддерживает изображения gif для отображения в виде отчета.Как конвертировать gif-изображения в jpeg в C# code winforms?

Так что теперь у меня есть проблема с скрытыми изображениями gif в jpeg.

Пример кода:

data = File.ReadAllBytes(ImgPath); 

данные байт [] типа так что я путь изображения теперь я хочу конвертировать в JPEG до того ReadAllBytes() callls

Я пытался так:

using (Image img = Image.FromFile(ImgPath)) 
    { 
      img.Save(ImgPath, System.Drawing.Imaging.ImageFormat.Jpeg); 
    } 

Но у меня есть общая ошибка Gdi, что-то пришло. спасибо.

+0

Где ошибка? в Image.FromFile или в img.Save? – bdn02

+0

@ bdn02 img.save() способ. Я получил эту ошибку – Nag

+0

Ваша ошибка в том, что вы открыли изображение, сохранили его, а затем попытались сохранить его по себе (пока открыто) в качестве нового формата. – DonBoitnott

ответ

1

Это код:

 byte[] imagebuffer; 

     using (Image img = Image.FromFile(@"c:\temp_10\sample.gif")) 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      img.Save(ms, ImageFormat.Jpeg); 
      imagebuffer = ms.ToArray(); 
     } 

     //write to fs (if you need...) 
     File.WriteAllBytes(@"c:\temp_10\sample.jpg", imagebuffer); 

пространство имен для использования в System.Drawing

Я изменил мой код, я думаю, что вам не нужен файл на файловой системе, но вы можете используйте массив байтов для вызова отчета Crystal

+0

Я пробовал на самом деле, я получил общую ошибку ошибки. – Nag

+0

Какая ошибка? Вы уверены, что исходный файл является gif? – bdn02

+0

Да, это изображение gif – Nag

0

Вот два места, которые могут вам помочь. Одним из них является сайт Microsoft о том, как читать файлы изображений в памяти.

https://msdn.microsoft.com/en-us/library/twss4wb0(v=vs.90).aspx

Следующий пример от другого пользователя на сайте о том, как прочитать файл в массив прикуса в формате, который вы хотите. Я предполагаю, что вы хотите, чтобы он был байтовым массивом, поэтому вы можете что-то с ним делать, а не откладывать его как файл.

How to convert image in byte array

я бы напечатал все это, но нашел примеры и они были понятны. :-)

Смежные вопросы