CreateBitmap으로 만든 비트 맵을 사용하여 CreatePatternBrush를 사용하여 브러시를 만듭니다.CreatePatternBrush 및 화면 색 깊이
비트 맵의 너비가 1 픽셀이고 높이가 24 픽셀이므로 각 픽셀에 RGB 값이 있으므로 rgbquads 배열을 만들어 CreateBitmap에 전달합니다.
내가 만드는 비트 맵 또한 32bpp이기 때문에 화면의 색 농도가 32bpp이면 잘 작동합니다.
화면 색 농도가 32bpp가 아닌 경우, 호환되지 않는 비트 맵을 대신 작성해야하므로이 작업은 실패하고 그 이유를 이해합니다.
대신 CreateCompatibleBitmap을 사용해야하는 것 같습니다.하지만 그 비트 맵에 포함 된 픽셀 데이터를 어떻게 넣어야합니까?
또한 등 CreateDIBPatternBrushPt, CreateDIBitmap, CreateDIBSection, 나는하여 DIBSection 무엇인지 이해하고, 피사체가 일반적으로 혼란을 발견하지는
에 대해 읽었습니다.
화면과 동일한 색 깊이의 비트 맵이 필요하지만 32bpp 픽셀 데이터 만 갖는 방법은 무엇입니까?
답변 해 주셔서 감사합니다. 코드를 작성하기 전에 몇 가지 사항을 이해하려고합니다. BITMAPINFO는 BITMAPINFO 또는 BITMAPINFOHEADER입니까? BITMAPINFO의 bmiColors가 색상 표인 것은 꽤 shure입니다. bmiColors 또는 무엇을 제공해야합니까? CreateDIBSection의 iUsage 매개 변수 : "pbmi (논리 색상 표 인덱스 또는 리터럴 RGB 값)가 가리키는 BITMAPINFO 구조체의 bmiColors 배열 멤버에 포함 된 데이터 형식입니다." "DIB_RGB_COLORS : BITMAPINFO 구조체에는 리터럴 RGB 값의 배열이 들어 있습니다." 리터럴 RGB 값의 배열은 무엇입니까? –
나는 bmiColors 항목을 무시하고 BITMAPINFOHEADER가 아니라 BITMAPINFO를 전달해야한다고 추측합니다.이 경우는 32bpp 비트 맵이며 색상 표가 없기 때문입니다. 그러나 바보이거나 MSDN이 매우 혼란 스럽거나 어쩌면 둘 다 모르겠다. 네가 나 한테 빛을 바꿀 수 있다고 생각하니? –
코드에서 bmiColors를 무시하므로 제 추론이 옳다고 생각합니다. –