0

В моем приложении wp7 я выбираю изображение из медиа-библиотеки, и я хочу получить строку base64 этого изображения, потому что я отправляю его в свою службу wcf для создания изображения на сервере. код для получения base64 строка выглядит следующим образом:image stream to base64 string в WP7

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, но я думаю, что приложение дает неправильную base64string, что может быть причиной, пожалуйста, помогите найти проблему.

+0

Не могли бы вы пояснить, как создать файл изображения на сервере? –

ответ

1

Вы отправляете пиксели с кодировкой base64 на сервер. Я не уверен, что это то, что вам нужно. Как насчет преобразования Stream в строку base64?

var memoryStream = new MemoryStream(); 
e.ChosenPhoto.CopyTo(memoryStream); 
byte[] result = memoryStream.ToArray(); 
base64 = System.Convert.ToBase64String(result); 
+0

да, мы можем взять base64 string таким образом, но эта сгенерированная строка не создает тот же образ, который мы выбрали из телефона на сервере. – DharaPPatel

+1

, то снова код сервера может помочь нам понять корни проблемы. –

+0

Я думаю, что нет никаких проблем в службе на сервере, поскольку я попытался передать статическую строку bas64 из моего приложения любого изображения в службу и службу, создав это изображение. поэтому проблема может быть в строке base64 нет? – DharaPPatel