2015-01-01 7 views
1

저는 웹 API를 사용하여 이미지를 다운로드하는 라이브러리를 작성하고 있습니다. 이 라이브러리를 여러 플랫폼에서 사용할 수 있어야하므로 휴대용 클래스 라이브러리를 선택합니다. 일반적으로 System.DrawingBitmap 유형을 사용하여 다운로드 한 이미지를 메모리에 저장 한 다음 메서드 등에 전달할 수 있습니다.C# Portable Class Libraries - 이미지 사용

그러나 PCL은 플랫폼에 독립적 인 방식으로이 클래스에 액세스 할 수 없습니다. 따라서 이미지를 단순히 byte[] 배열로 다운로드 한 다음 라이브러리를 사용하는 응용 프로그램에서 사용할 것입니다. 바이트 배열을 사용하여 다운로드 한 이미지를 보관하는 데 잠재적 인 문제가 있습니까?

+0

이미지를 'byte []'에 저장하는 데 발생할 수있는 잠재적 인 문제는 없습니다. – Mayank

답변

3

byte[]을 사용하여 이미지를 저장하는 데 큰 잠재적 인 문제가 있다고 생각하지 않습니다.

내가 생각할 수있는 한 가지 점은 이미지를 byte[]으로 변환하고 다시 변환 할 때 발생할 수있는 잠재적 오버 헤드입니다.

또한 나는 그 밖의 이미지를 저장하는 더 좋은 방법을 생각할 수 없다. byte[].

더하기 byte[]을 보유하는 데이터 클래스의 확장 메서드를 작성하여 Bitmap을 사용할 수 있습니다.

public static class DataClassExtensions 
{ 
    public static BitmapImage GetImage(this DataClass data) 
    { 
     if(data == null || data.ImageArray == null) return null; 

     using (var ms = new System.IO.MemoryStream(data.ImageArray)) 
     { 
       Bitmap image = (Bitmap)Image.FromStream(ms); 
       return image; 
     } 
    } 
} 

public class DataClass 
{ 
    public byte[] ImageArray { get; set; } 
}