|
255 와 같은 숫자와 계산 하면서 signed char 로 했군요..
unsigned char 로 해야 되는건뎅..ㅎㅎㅎ
소리바람님덕에 찾기 힘든(^.^) 에러를 찾았습니다.
감사합니다.^^
소리바람.OJ 님이 쓰신 글 :
: 아래 코드를 찬찬히 보시면 아실 겁니다.
:
: //-------------------------------------------------------
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
:
: pBitmap->Width = m_iScreenWidth;
: pBitmap->Height = m_iScreenHeight;
: pBitmap->PixelFormat = pf24bit;
: //pBitmap->PixelFormat = pf16bit;
:
: BitBlt(pBitmap->Canvas->Handle, 0, 0, m_iScreenWidth, m_iScreenHeight, m_hHdc, 0, 0, SRCCOPY);
:
: //Image1->Picture->Assign(pBitmap);
:
: int r,g,b,x,y;
: Byte *p;
: int Amount = Edit1->Text.ToInt();
:
: for(y=0;y<m_iScreenHeight / 4;y++){
: p = (Byte *)pBitmap->ScanLine[y];
: for(x=0;x<m_iScreenWidth/ 4;x++){
: r = p[x * 3];
: g = p[x * 3 + 1];
: b = p[x * 3 + 2];
:
: p[x*3] = (Byte)(r + ((255-r)*Amount) / 255);
: p[x*3+1] = (Byte)(g + ((255-g)*Amount) / 255);
: p[x*3+2] = (Byte)(b + ((255-b)*Amount) / 255);
:
: }
: }
: Image1->Picture->Assign(pBitmap);
:
: delete pBitmap;
: }
: //-----------------------------------------------------
:
: 보시면 char대신에 Byte를 사용한 것만 다릅니다.
:
:
: 건승을 빕니다.
:
: mspower 님이 쓰신 글 :
: : 도움 말씀 감사합니다.
: :
: : 소리바람님 말씀대로 해봐도, 제가 원하는 이미지가 안 나오네요.
: :
: : 색상이 반전(?) 되서.ㅠ.ㅠ
: :
: : 결과물을 이미지 파일로 첨부합니다. 보시고, 제 컴에서만 그런건지 확인 부탁드립니다.
: :
: : 소리바람.OJ 님이 쓰신 글 :
: : : 아마 색상이 반전이 되어서 당황하셨겠군요.
: : :
: : : int Amount = 200;
: : :
: : : 양수의 범위에서 255까지 입력을 해 보세요.
: : : 간단하면서 동작이 잘 되더군요.
: : :
: : : 건승을 빕니다.
: : :
: : : 넘초보 님이 쓰신 글 :
: : : : 이미지 밝기 조절하여 출력하고자 합니다.
: : : :
: : : : 검색해 보면 R,G,B 값에 원하는 값을 더하여 출력하면 되는것으로 말씀들 하시고,
: : : :
: : : : 델마당에서 셈플을 받아 실행해보면, 밝기가 조절이 되는데,
: : : :
: : : : 빌더에서 간단히 테스트로 구현해 보았는데,
: : : :
: : : : 색상이 이상하게 변하네요.
: : : :
: : : : 혹 아시는분 도움 부탁드립니다.
|