2011-08-06 10 views
2

イメージ(またはbitmapImageまたはPhotoResult)をbyte []に​​保存してからイメージに変換する際に問題があります。Bitmap to byte []

私はそれについてインターネット上で多くの投稿を見つけましたが、仕事はありません。このコードでは、私がSetSource (bitmapImage.SetSource(ms);)を実行したときにUnspecifed errorを取得しましたが、それを行う方法はわかりません。

また、Devices(それぞれ名前、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

これは実際には2つの別個の質問であり、そのように分離する必要があります。 – ctacke

+0

質問は画像かビットマップをバイト[]に変換するホット – przemyslaw

+0

それから質問とは関係がないので、「私はまた、デバイス....のリストを作成したい」部分を削除します。 – ctacke

答えて

1

あなたはMicrosoft.Phone.PictureDecoderクラスを試したことがありますか? WritableBitmapオブジェクトのインスタンスを返すDecodeJpeg関数を持っています。

もう1つの解決策は、デジタル画像処理をはるかに容易にし、非常に優れた性能を持つ拡張ライブラリを使用することです。必要な機能はFromByteArrayです。

BitmapImageが変更から保護されているため、どちらの場合でもWriteableBitmapを使用する必要があります。 BitmapImageとWriteableBitmapは両方ともBitmapSourceのサブクラスなので、イメージコントロールに簡単に表示できます。

希望すると助かります!