HOWTO · Csharp

C#에서 이미지를 바이트 배열로 변환

이 기사에서는 C#에서 이미지를 바이트 배열로 변환하는 방법을 알아봅니다.

이 튜토리얼에서는 Memory StreamImage Converter 클래스를 사용하여 이미지를 바이트 배열로 변환하는 방법을 알려줍니다. 또한 C# 바이트 배열을 이미지로 변환하는 프로세스를 더 잘 이해할 수 있습니다.

바이트 배열 개요

이진 데이터 모음은 종종 바이트 배열인 바이트 배열로 알려진 형식으로 저장됩니다. 예를 들어, 그림의 각 픽셀에 대한 정보는 이미지를 구성하는 바이트 배열 내부에 저장됩니다.

바이트 배열에서 모든 파일 내용의 이진 표현을 저장할 수 있습니다. 같은 방식으로 일반 배열을 바이트로 초기화합니다. 바이트로 바이트 배열을 초기화할 수도 있습니다.

메모리 스트림을 사용하여 C#에서 이미지를 바이트 배열로 변환

.NET Framework는 다양한 이미지 형식을 지원합니다. Picture 개체에는 개발자가 이미지를 이러한 형식으로 파일에 저장할 수 있는 저장 메서드가 있습니다.

암호:

public byte[] imgToByteArray(Image img) {
  using (MemoryStream mStream = new MemoryStream()) {
    img.Save(mStream, img.RawFormat);
    return mStream.ToArray();
  }
}

위의 예에서 Image 유형의 img 입력을 인수로 받아들이는 imgToByteArray라는 함수를 작성합니다. 이 메서드의 using 라인 내에서 MemoryStream() 클래스의 인스턴스를 만듭니다.

그런 다음 이미지 형식이 지정되는 동안 이 인스턴스 동안 MemoryStream 객체에 Save() 기능을 적용합니다. 이제 항목이 이미 메모리에 저장되었으므로 MemoryStream 개체에서 사용할 수 있는 ToArray() 메서드는 항목을 빠르고 효율적으로 바이트 배열로 변환할 수 있습니다.

ImageConverter를 사용하여 C#에서 이미지를 바이트 배열로 변환

암호:

public static byte[] imgToByteConverter(Image inImg) {
  ImageConverter imgCon = new ImageConverter();
  return (byte[])imgCon.ConvertTo(inImg, typeof(byte[]));
}

imgToByteConverter()라는 함수를 만들었습니다. inImg라는 입력을 사용하고 매개변수로 Image 유형을 가집니다.

이 메서드 내에서 ImageConverter() 클래스의 인스턴스를 만듭니다. .ConvertTo() 메서드를 사용하여 전송된 이미지를 변환한 후 이 함수는 원래 형식으로 변환된 바이트를 반환합니다.

C#에서 바이트 배열을 이미지로 변환

이미지를 바이트 배열로 변환하는 것은 우리에게 친숙한 것입니다. 바이트 배열이 로드되었으므로 앞으로 코드에서 이미지를 활용할 수 있도록 바이트 배열을 이미지로 변환하는 함수를 살펴보겠습니다.

암호:

public Image byteArrayToImage(byte[] byteArrayIn) {
  using (MemoryStream mStream = new MemoryStream(byteArrayIn)) {
    return Image.FromStream(mStream);
  }
}

byteArrayToImage()라는 함수가 생성됩니다. byteArrayIn이라는 입력을 사용하고 매개변수로 byte[] 유형을 가집니다.

이 메서드에는 byteArrayIn 변수에 저장된 바이트를 제공하여 MemoryStream 클래스의 인스턴스를 초기화하는 using 문이 포함되어 있습니다. 그런 다음 mStream이라는 인수를 호출하고 반환하는 .FromStream() 메서드의 도움으로 바이트를 이미지로 변환합니다.