Bitmap 객체와 Graphics 객체

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.

실행화면

정상

캡쳐

비정상

회색

회색 화면

검은색

어두운 화면

이 사이트는 광고를 포함하고 있습니다.
광고로 발생한 수익금은 서버 유지 관리에 사용되고 있습니다.

This site contains advertisements.
Revenue generated by the ad servers are being used for maintenance.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다