Image 将字符串转换为图像

Image 将字符串转换为图像,image,windows-phone-7,converter,Image,Windows Phone 7,Converter,我正在尝试将字符串转换为173x173 png图像。这有可能吗?如果有,怎么可能?以后需要url在我的backtile上使用它 字符串可以包含字母、数字和“-./” 找到了类似的东西,但似乎根本不起作用: private Uri ToImage() { string imageString = ""; byte[] imageBytes = Convert.FromBase64String(imageString); System.Te

我正在尝试将字符串转换为173x173 png图像。这有可能吗?如果有,怎么可能?以后需要url在我的backtile上使用它

字符串可以包含字母、数字和“-./”

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

 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;
    }

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

Image img;
byte[] fileBytes = Convert.FromBase64String(imageString);
using(MemoryStream ms = new MemoryStream())
{
    ms.Write(fileBytes, 0, fileBytes.Length);
    img = Image.FromStream(ms);
}
您可以将此图像保存在服务器上,并将文件的URL发送到客户端或“动态”发送图像:

在这种情况下,图像url是页面url,例如:

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

只需删除/注释公共抽象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)

有人像我一样理解此代码吗?:)这是你想要的吗?我不知道他是在一个字符串中有一个编码图像,还是在试图将一个字符串写入一个平铺图像。是哪一个?我尝试将字符串转换为图像,然后返回图像的url。我不确定这是否回答了他试图实现的目标。不过,老实说,我不确定这里的目标是什么。无论如何,考虑到反墙,有一件事是PNG通常不是一个好的选择,因为尺寸可以超过瓦片图像的最大尺寸。我通常使用JPG,因为在手机上,格式的任何损失通常都会被较小的显示尺寸掩盖。JPG不支持透明度,这就是问题所在。这是错误的。Windows Phone没有Image.FromStream方法。
Image img;
byte[] fileBytes = Convert.FromBase64String(imageString);
using(MemoryStream ms = new MemoryStream())
{
    ms.Write(fileBytes, 0, fileBytes.Length);
    img = Image.FromStream(ms);
}