在我的wp7应用程序中我从媒体库中选择图像,我想得到该图像的base64字符串,因为我将它发送到我的wcf服务以在服务器上创建图像。获取base64字符串的代码如下:
void taskToChoosePhoto_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
fileName = e.OriginalFileName;
selectedPhoto = PictureDecoder.DecodeJpeg(e.ChosenPhoto);
imgSelected.Source = selectedPhoto;
int[] p = selectedPhoto.Pixels;
int len = p.Length * 4;
result = new byte[len]; // ARGB
Buffer.BlockCopy(p, 0, result, 0, len);
base64 = System.Convert.ToBase64String(result);
}
}
但在服务器上,此代码会创建图像文件,但格式无效。我交叉验证了base64字符串,但我认为app给出了错误的base64string,原因可能是帮助找出问题。
答案 0 :(得分:1)
您正在服务器上发送base64编码的像素。我不确定这是你需要的。如何将Stream
转换为base64字符串?
var memoryStream = new MemoryStream();
e.ChosenPhoto.CopyTo(memoryStream);
byte[] result = memoryStream.ToArray();
base64 = System.Convert.ToBase64String(result);