2011-08-06 4 views
2

이미지 (또는 bitmapImage 또는 PhotoResult)를 바이트 []로 저장 한 다음 다시 이미지로 변환하는 데 문제가 있습니다.비트 맵에서 바이트 []

인터넷에서 많은 게시물을 발견했지만 작동하지 않습니다. 이 코드에서 나는 을 할 때 Unspecifed error을 얻었고 그렇게하는 법을 모릅니다.

또한 장치 목록 (각각 이름, ID, 상태 및 이미지를 byte[]으로 표시)을 만들고 IsolatedStorage에 저장 한 다음 읽은 다음 이미지와 함께 나열하려고합니다. . 물론) 다음

는 일부 코드는 지금까지 한 것입니다 :

public void photoChooserTask_Completed(object sender, PhotoResult e) 
{ 
    if (e.TaskResult == TaskResult.OK) 
    { 


     imageBytes = new byte[e.ChosenPhoto.Length]; 
     e.ChosenPhoto.Read(imageBytes, 0, imageBytes.Length); 

     BitmapImage bitmapImage = new BitmapImage(); 

     MemoryStream ms = new MemoryStream(imageBytes); 
     try 
     { 
      bitmapImage.SetSource(ms); 
     } 
     catch (Exception ea) 
     { 
      // 
     } 
      image1.Source = bitmapImage; 

    } 
+1

이것은 실제로 두 개의 개별 질문이며 그렇게 분리해야합니다. – ctacke

+0

질문 : 이미지 또는 비트 맵을 바이트 [] (으)로 변환하는 것이 좋습니다. – przemyslaw

+0

그런 다음 질문과 관련이 없으므로 "장치 목록을 만들고 싶습니다."부분을 제거하십시오. – ctacke

답변

1

당신이 Microsoft.Phone.PictureDecoder 클래스를 시도? WritableBitmap 객체의 인스턴스를 반환하는 DecodeJpeg 함수가 있습니다.

다른 해결책은 디지털 이미지 처리를 훨씬 쉽게 해주고 성능이 우수한 WritableBitmapEx 확장 라이브러리를 사용하는 것입니다. 필요한 함수는 FromByteArray입니다.

BitmapImage가 수정되지 않도록 보호하기 때문에 WriteableBitmap을 사용해야합니다. BitmapImage와 WriteableBitmap은 모두 BitmapSource의 하위 클래스이므로 이미지 컨트롤에 쉽게 표시 할 수 있습니다.

희망이 있습니다.

관련 문제