将字符串转换为图像

时间:2012-03-26 14:53:28

标签: image windows-phone-7 converter

我正在尝试将我的字符串转换为173x173 png-image。这是不可能的,如果是的话:怎么样?之后需要网址才能在我的背板上使用它。

字符串可以包含字母,数字和“-./"

找到类似的东西,但似乎根本不起作用:

 private Uri ToImage()
    {
        string imageString = "";

        byte[] imageBytes = Convert.FromBase64String(imageString);
        System.Text.Encoding.UTF8.GetBytes(imageString.ToCharArray(), 0, imageString.ToCharArray().Length - 1,
        imageBytes, 0);

        System.IO.MemoryStream ms = new System.IO.MemoryStream(imageBytes, 0, imageBytes.Length);

        ms.Write(imageBytes, 0, imageBytes.Length);

        BitmapImage bitmapImage = new BitmapImage();
        bitmapImage.SetSource(ms);
        return bitmapImage.UriSource;
    }

2 个答案:

答案 0 :(得分:1)

要从base64字符串加载图像,您可以使用它:

Image img;
byte[] fileBytes = Convert.FromBase64String(imageString);
using(MemoryStream ms = new MemoryStream())
{
    ms.Write(fileBytes, 0, fileBytes.Length);
    img = Image.FromStream(ms);
}

您可以将此图像保存在服务器上,并将文件的URL发送到客户端或“即时”发送图像:

Response.ContentType = "image/png";
img.Save(Response.OutputStream, ImageFormat.Png);

在这种情况下,图片网址是页面网址,例如:

img src="getBacktile.aspx?id=XXX"

答案 1 :(得分:0)

只需删除/注释 public abstract int GetBytes(char [] chars,int charIndex,int charCount,byte [] bytes,int byteIndex);

的行代码
System.Text.Encoding.UTF8.GetBytes(imageString.ToCharArray(), 0, imageString.ToCharArray().Length - 1,
        imageBytes, 0);

它对我有用。

更重要的是,使用行代码转换

Image img;
byte[] fileBytes = Convert.FromBase64String(imageString);
using(MemoryStream ms = new MemoryStream())
{
    ms.Write(fileBytes, 0, fileBytes.Length);
    img = Image.FromStream(ms);
}

不行。由于在Windows Phone 7中不提供方法 Image.FromStream(ms)