从image到base64,System.drawing.image的转换

时间:2014-05-17 02:35:00

标签: c# windows windows-phone-8

我使用c#用于windows phone 8 app,我需要将一个图像转换为base 64.我使用此代码:

public string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format)
    {
        using (MemoryStream ms = new MemoryStream())
        {
            // Convert Image to byte[]
            image.Save(ms, format);
            byte[] imageBytes = ms.ToArray();

            // Convert byte[] to Base64 String
            string base64String = Convert.ToBase64String(imageBytes);
            return base64String;
        }
    }

但它返回此错误: 在系统名称的空白处不存在名称和名称类型,也许没有汇编参考。

我尝试安装ddl,但不行。

1 个答案:

答案 0 :(得分:2)

您尝试使用的代码无法在Windows Phone上运行,因为它使用System.Drawing程序集中的类,这在此平台上不可用。

尝试使用此示例代码:

public string GetBase64(Image image)
{
    byte[] bytearray;
    using (MemoryStream ms = new MemoryStream())
    {
        WriteableBitmap wb = new WriteableBitmap((BitmapImage)image.Source);
        wb.SaveJpeg(ms, wb.PixelWidth, wb.PixelHeight, 0, 100);
        bytearray = ms.ToArray();
    }
    return Convert.ToBase64String(bytearray);
}