2010-11-30 3 views
0
public byte[] PictureByteArray 
     { 
      get 
      { 
       //get a TypeConverter object for converting Bitmap to bytes 
       TypeConverter converter = TypeDescriptor.GetConverter(typeof(Bitmap)); 
       byte[] byteArr = (byte[])converter.ConvertTo(source, typeof(byte[])); 
       return byteArr; 
      } 
      set 
      { 
       source = new Bitmap(new MemoryStream(value)); 
      } 
     } 


    System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding(); 
      s = enc.GetString(bytes); 
+1

I가 돈 ' 속성을 바이트 배열에서 받아들이고 비트 맵을 반환하기 때문에 여기에서 속성을 사용할 수 있다고 생각하지 마십시오. 속성은 동일한 데이터 형식을 가져오고 설정해야합니다. 이를 위해서는 두 가지 방법이 필요합니다. 하나는 이미지 -> 바이트 배열 용이고, 하나는 바이트 배열 -> 이미지 용입니다. –

답변

1

평소 바이트 배열로 이미지를 변환하고 다시, 예를 들어 웹 서비스로 화상을 전송할 때, 다시 다시 입수 이러한 두 가지 방법을 사용

public static byte[] ImageToByteArray(System.Drawing.Image imageIn) { 
    MemoryStream ms = new MemoryStream(); 
    Bitmap image = new Bitmap(imageIn); 
    image.Save(ms, System.Drawing.Imaging.ImageFormat.Png); 
    return ms.ToArray(); 
} 

public static Image ByteArrayToImage(byte[] byteArray) { 
    MemoryStream ms = new MemoryStream(byteArray); 
    Image returnImage = Image.FromStream(ms); 
    return returnImage; 
} 
+0

나는 당신이 ImageToByteArray에 비트 맵을 유출하고 있다고 생각합니다. 저장 한 후에는 임시 비트 맵을 삭제해야합니다. – N8allan