Silverlight WP7将ASCII字符串转换为图像

Silverlight WP7将ASCII字符串转换为图像,silverlight,windows-phone-7,Silverlight,Windows Phone 7,我正在尝试将ASCII字符串转换为图像源,如WP7中所示: string imageString = "%PNG image data here in ASCII"; byte[] imageBytes = new byte[sizeOfImage]; System.Text.Encoding.UTF8.GetBytes(imageString.ToCharArray(), 0, imageString.ToCharArray().Length

我正在尝试将ASCII字符串转换为图像源,如WP7中所示:

string imageString = "%PNG image data here in ASCII"; byte[] imageBytes = new byte[sizeOfImage]; System.Text.Encoding.UTF8.GetBytes(imageString.ToCharArray(), 0, imageString.ToCharArray().Length - 1, imageBytes, 0); MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length); // Convert byte[] to Image ms.Write(imageBytes, 0, imageBytes.Length); BitmapImage bitmapImage = new BitmapImage(); bitmapImage.SetSource(ms); string imageString=“%PNG图像数据以ASCII格式显示”; 字节[]图像字节=新字节[sizeOfImage]; System.Text.Encoding.UTF8.GetBytes(imageString.ToCharray(),0,imageString.ToCharray()。长度-1, 图像字节,0); MemoryStream ms=新的MemoryStream(imageBytes,0,imageBytes.Length); //将字节[]转换为图像 ms.Write(imageBytes,0,imageBytes.Length); BitmapImage BitmapImage=新的BitmapImage(); bitmapImage.SetSource(毫秒); 但是WP7中没有Encoding.ASCII,所以很明显在“Encoding.UTF”行中它失败了,因为WP7只有该编码。有什么解决办法吗


注意:ASCII字符串表示PNG文件。

我怀疑您真正想做的是:-

byte[] imageBytes = Convert.FromBase64String(imageString);
然而,拉西是对的。你到底为什么要这么做?只需将png作为内容添加到Xap。整个过程就像:-

BitmapImage bitmapImage = new BitmapImage(new Uri("/Assets/yourfile.png", UriKind.Relative));

Where Assets是您在项目中创建的用于存储这些内容的文件夹。

除了“ASCII”之外,您还使用什么样的编码?你知道ASCII码只有7位,对吗?为什么要首先将图像编码为文本?“这是Unicode”;我很困惑。难道WP7项目不允许资源文件或类似文件,您可以将PNG文件的实际二进制副本放在其中,而不是尝试这样做吗?我很确定你的ASCII“表示法”实际上并不代表一个真正的PNG文件。你可能觉得它很像,但它不是一个有效的PNG文件,因为ASCII只有7位,所以在这个过程中你会丢失很多信息。既然你在源代码中对文件进行了大量编码,为什么不把它作为字节数组存储在源代码中呢?我从web服务器获得了一个PNG字符串(ASCII)。是的,除非您的图像信息存储在ASCII数据的某个地方,否则只使用二进制文件(png、jpg、wav)作为内容要容易得多。所以Base64确实有效。