0
붉은 색으로 이미지 (개 개요)를 채우기 위해 홍수 채우기 방법을 쓰고 있습니다.홍수 채우기 및 RGB 값
내 TestShellDlg.cpp에 홍수 채우기 방법입니다. CTestShellDlg :: m_pScreenDib 멤버는 그래픽이 포함 된 CDIB32 비트 맵 클래스이며 그립니다.
현재 픽셀을 샘플링하고 검정색 (윤곽선의 색)이 아닌 경우 빨간색으로 표시합니다. TestShellDlg.cpp 클래스 내 플러드 필 방법 여기
void CDIB32::GetRGB(int x, int y, BYTE& r, BYTE& g, BYTE& b)
{
if (x >= Width() || y >= Height())
IERROR;
int off = y * ByteWid() + x * 4;
b = m_pBits[off];
g = m_pBits[off+1];
r = m_pBits[off+2];
}
그리고있다 :
void CTestShellDlg::FloodFill(CPoint& mid)
{
//while the current pixel colour is not black, set it to red and recursively loop
m_pScreenDib ->GetRGB(mid.x,mid.y, (byte)& r,(byte)& g,(byte)& b);
while(r !=(byte)0, g !=(byte)0, b !=(byte)0)
{
m_pScreenDib -> SetRGB(mid.x, mid.y,(byte)255,(byte) 0,(byte) 0);
mid.x++;
FloodFill(mid);
mid.x--;
FloodFill(mid);
mid.y++;
FloodFill(mid);
mid.y--;
FloodFill(mid);
}
}
문제는, 그것은 R, G, B를 말하고 이것은 Dib32.cpp 클래스의 게터입니다 정의되지 않았습니다. 이유가 확실하지 않습니다. 어떤 도움이라도 대단히 감사합니다.
전설 선생님을 (당신은 매개 변수 목록에서 인라인을 선언 할 수 없습니다)! 많은 감사 –