1

asp.net Webサイトのc#コードで動的にコントロールを作成しています。画像コントロールを作成し、wcfサービスから取得したバイト配列から派生した画像を表示したいと思います。バイト配列を画像に変換し、次のコードを使用して場所に保存しようとしましたが、機能しません。誰か助けてくれませんか!

 public System.Drawing.Image byteArrayToImage(byte[] byteArrayIn)
{
    MemoryStream ms = new MemoryStream(byteArrayIn);
    System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
    return returnImage;
}
4

3 に答える 3

5

Saveメソッドがありません。

public string byteArrayToImage(byte[] byteArrayIn)
{
  string saveLocation = "<Path to save image to>"; // e.g. c:\mywebsite\image23.png
  MemoryStream ms = new MemoryStream(byteArrayIn);
  System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
  returnImage.Save(saveLocation);
  return saveLocation;
}

次に、Server.MapPathを使用して、保存されたファイルの場所のURLをコントロールに渡しますasp:Image

バイトストリームを保存するためだけにオブジェクトを作成するのではなく、imageすでにバイト配列がある場合は、次のようImageUrlasp:imageコントロールの内部にバイトストリームを配置するだけです。

image1.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteArrayIn);
于 2013-01-07T09:34:05.943 に答える
4

それはすばらしい。画像オブジェクトを作成する必要はありません。これは私のために働いた:

image1.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteArrayIn);
于 2013-11-19T13:01:18.883 に答える
2

次を試してください

File.WriteAllBytes(@"C:\test.jpg", BYTE_ARRAY_OF_IMAGE);
于 2013-01-07T09:54:02.253 に答える