.Net

Bitmap 객체와 Graphics 객체

Ad


Bitmap 객체로 부터 Graphics 객체 생성시 유효한 PixelFormat 관련 내용을 정리하였습니다.

Graphics 객체 생성 코드는 아래와 같습니다.

이 때, Bitmap 객체 생성시 매개변수로 전달하는 PixelFormat 열거형 중 일부가 동작하지 않거나, 원하는 방향이 아닌 경우가 있었습니다.

int nWidth = 1920;
int nHeight = 1080;
PixelFormat pixelFormat = PixelFormat.Format32bppArgb;
Bitmap bmp = new Bitmap(nWidth, nHeight, pixelFormat);
using(Graphics g = Graphics.FromImage(bmp))
{
    // do something.
}

확인결과

PixelFormat 열거형의 내용과 Bitmap 객체 생성시 전달한 매개변수에 따른 Graphics 객체 생성시의 예외 또는 이상한 결과에 대한 내용입니다.

콜론(:) 뒤의 내용은 예외발생이며, 세미콜론(;) 뒤의 내용은 이상한 결과입니다.

  • Alpha: Parameter is not valid.
  • Canonical: Parameter is not valid.
  • DontCare: Parameter is not valid.
  • Extended: Parameter is not valid.
  • Format16bppArgb1555: Out of memory.
  • Format16bppGrayScale: Out of memory.
  • Format16bppRgb555
  • Format16bppRgb565
  • Format1bppIndexed: A Graphics object cannot be created from an image that has an indexed pixel format.
  • Format24bppRgb
  • Format32bppArgb
  • Format32bppPArgb
  • Format32bppRgb
  • Format48bppRgb; 검은색 화면
  • Format4bppIndexed: A Graphics object cannot be created from an image that has an indexed pixel format.
  • Format64bppArgb; 회색 화면
  • Format64bppPArgb; 회색화면
  • Format8bppIndexed: A Graphics object cannot be created from an image that has an indexed pixel format.
  • Gdi: Parameter is not valid.
  • Indexed: Parameter is not valid.
  • Max: Parameter is not valid.
  • PAlpha: Parameter is not valid.
  • Undefined: Parameter is not valid.

실행화면

정상

캡쳐

비정상

회색

회색 화면

검은색

어두운 화면