2014-01-10 3 views
0

После того, как изображение взято с CameraCaptureTask, оно должно быть загружено на сервер. Загруженный JPG на стороне сервера, кажется, имеет правильный размер файла, но поврежден. Также imageBuffer кажется, что все байты установлены в 0. Любая идея о том, что не так с кодом ниже?JPG поврежден при загрузке в silverlight

if (bitmapImage != null) { 
    // create WriteableBitmap object from captured BitmapImage 
    WriteableBitmap writeableBitmap = new WriteableBitmap(bitmapImage); 

    using (MemoryStream ms = new MemoryStream()) 
    { 
     writeableBitmap.SaveJpeg(ms, writeableBitmap.PixelWidth, writeableBitmap.PixelHeight, 0, 100); 

     imageBuffer = new byte[ms.Length]; 
     ms.Read(imageBuffer, 0, imageBuffer.Length); 
     ms.Dispose(); 
    }     
} 
+0

Сохраняет ли 'SaveJpeg' поток обратно в позицию 0? В противном случае, не будет ли позиция потока быть * после * сохраненного изображения? –

ответ

0

Метод SaveJpeg изменяет текущее положение потока. Чтобы правильно сохранить содержимое потока, вам нужно прочитать его с самого начала (т. Е. Установить положение на 0). Попробуйте следующее:

if (bitmapImage != null) { 
    // create WriteableBitmap object from captured BitmapImage 
    WriteableBitmap writeableBitmap = new WriteableBitmap(bitmapImage); 

    using (MemoryStream ms = new MemoryStream()) 
    { 
     writeableBitmap.SaveJpeg(ms, writeableBitmap.PixelWidth, writeableBitmap.PixelHeight, 0, 100); 

     ms.Position = 0; 
     imageBuffer = new byte[ms.Length]; 
     ms.Read(imageBuffer, 0, imageBuffer.Length); 
     ms.Dispose(); 
    }     
} 
+0

Прекрасно работает, спасибо! – user3153110

+0

Напечатайте текстовое описание того, что вы изменили, чтобы будущим посетителям этого вопроса не пришлось в основном различать два фрагмента кода, чтобы выяснить, почему один работает, а другой нет. –

+1

Он начал корректно работать после того, как я установил ms.Position = 0, который переместил поток обратно в 0. – user3153110

 Смежные вопросы

  • Нет связанных вопросов^_^