【问题标题】:c# imagetools gif to png [closed]c#imagetools gif to png [关闭]
【发布时间】:2012-08-21 13:17:42
【问题描述】:

我尝试使用 ImageTools 将 .gif 转换为 .png。不幸的是,我失败了,我不知道为什么。这是我的代码 - 简单,但它不起作用。你能说哪里错了吗?非常感谢。

fs = new FileStream(@"\Photo.gif", FileMode.Open, FileAccess.Read, FileShare.Read);
PngEncoder encoder = new PngEncoder();
ExtendedImage ei = new ExtendedImage();
ei.SetSource(fs);
MemoryStream toms = new MemoryStream();
encoder.Encode(ei, toms);
BitmapImage bi = new BitmapImage();
bi.StreamSource = toms;
image1.Source = bi;

【问题讨论】:

  • “不工作”到底是什么意思?
  • 在ei.SetSource(fs)之后; ei 仍然是空的......并且 image1.Source 也是空的。如果我在本地存储中有文件很好,但如果我从网络加载文件,我会将其转换为 .png 并将其保存到磁盘。但是 ei.SetSource(fs);没有实现和 encoder.Encode(ei, toms);也没有实现。

标签: c# wpf windows-phone-7 xaml


【解决方案1】:

你可以关注this

// Load the image.
System.Drawing.Image image1 = System.Drawing.Image.FromFile(@"C:\test.bmp");

// Save the image in JPEG format.
image1.Save(@"C:\test.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

// Save the image in GIF format.
image1.Save(@"C:\test.gif", System.Drawing.Imaging.ImageFormat.Gif);

// Save the image in PNG format.
image1.Save(@"C:\test.png", System.Drawing.Imaging.ImageFormat.Png);

【讨论】:

  • 我喜欢这个,它简单并且使用了预先存在的功能。
  • WP7 不支持 System.Drawing。
【解决方案2】:

您可以使用以下代码将位图图像转换为 PNG 格式。

    private byte[] ConvertToPNG(Bitmap bmp)
    {
        MemoryStream ms = new MemoryStream();
        // Save to memory using the Png format
        bmp.Save (ms, ImageFormat.Png);

        // read to end
        byte[] bmpBytes = ms.GetBuffer();
        bmp.Dispose();
        ms.Close();

        return bmpBytes;
    }

如果要更改格式,也可以通过 ImageFormat.Jpeg、ImageFormat.gif 等进行更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-03
    • 2015-03-26
    • 2013-10-04
    • 2017-07-19
    • 2011-03-04
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多