如何在g#code winforms中将gif图像转换为jpeg?

时间:2016-01-29 07:29:25

标签: c# image winforms crystal-reports

我正在尝试将我的gif / png图像转换为jpeg然后我想通过   这些图像到sqldatabase。因为水晶报告不支持gif图像   用于显示报告。

所以现在我有一个问题要将gif图像转换为jpeg。

示例代码:

data = File.ReadAllBytes(ImgPath);

数据是byte []类型所以我有图像路径现在我想转换成jpeg     在ReadAllBytes()之前调用

我试过这样:

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

但是我得到了通用错误Gdi出现了什么。    感谢。

3 个答案:

答案 0 :(得分: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报告

答案 1 :(得分:0)

这里有两个可以提供帮助的地方。一个是微软关于如何将图像文件读入内存的网站。

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

下一个是网站上其他用户的示例,介绍如何将文件作为所需格式读取到咬合数组中。我假设你想要它作为一个字节数组,所以你可以用它做一些事情,而不是把它作为一个文件放回去。

How to convert image in byte array

我会把它全部输入但是找到了例子并且它们是自我解释的。 : - )

答案 2 :(得分:0)

我认为您可以比bdn02's答案更简单。试试:

Image img = Image.FromFile(@"c:\temp_10\sample.gif");
img.Save(@"c:\temp_10\sample.jpg", ImageFormat.Jpeg);