|
Canvas 의 Pixels 프로퍼티를 이용하시면 보다 쉽게 접근하실 수 있습니다. Pixels 프로퍼티는 속도가 많이 느리지만, 이정도의 처리는 거의 영향을 미치지 않습니다.
아래는 이미지 위에 마우스가 올려지면, 그 좌표의 색을 표현해주는 예제입니다.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{
int itRed = Image1->Canvas->Pixels[X][Y] & 0xFF,
itGreen = Image1->Canvas->Pixels[X][Y] >> 8 & 0xFF,
itBlue = Image1->Canvas->Pixels[X][Y] >> 16 & 0xFF;
Label1->Caption = Format("R : %d G : %d B : %d",
ARRAYOFCONST(((int)itRed, (int)itGreen, (int)itBlue)));
}
//---------------------------------------------------------------------------
슈퍼브라더 님이 쓰신 글 :
: 안녕 하세여~~~~
:
: 빌더를 공부한지 얼마 안된 왕초보랍니다...
:
: 고수님들께 질문이 있는데여...
:
: 비트맵에서 마우스를 움직일때마다 마우스 좌표가 가리키는 위치의 RGB값을 추출해서
:
: 화면에 계속 출력되게 하고 싶습니다.
:
: 예를 들어 포토샵에서 보면 마우스가 움직일때 마다 계속 RGB값이 변하는데
:
: 빠르게 RGB값을 추출하는 방법이 없나여???
:
: API 함수 GetRValue,GetGValue,GetBValue말구여...
:
: 아시는 고수님께서 답변주시면 감사하겠습니다..
|