Q&A

  • 화면상의 마우스가 위치한 점의 색상을 얻어오려면 어떻게 해야 하나요
어떤 색상추출 프로그램을 모델삼아 만들어보려고 하는데요,



예를들면, 작은 폼 하나를 만든다음, 그 폼에서 마우스를 클릭한 후, 그상태로

마우스를 움직이면 모니터 화면상에서 마우스가 움직이는 자리(X,Y)의 색상을

얻어와, 그 색상으로 폼의 색상을 바꾸고 싶은데요..



어떤 함수를, 어떻게 써야 하는지 막막하기만 하네요.



GetRvalue, GetGvalue.. 이런걸 써야 하나요?

도움말을 봐도.. 영어가 짧아서.. 흑, 잘 모르겠네요.



도와주세요~~!

4  COMMENTS
  • Profile
    강민주 2000.06.03 00:12
    류제훈 wrote:

    > 어떤 색상추출 프로그램을 모델삼아 만들어보려고 하는데요,

    >

    > 예를들면, 작은 폼 하나를 만든다음, 그 폼에서 마우스를 클릭한 후, 그상태로

    > 마우스를 움직이면 모니터 화면상에서 마우스가 움직이는 자리(X,Y)의 색상을

    > 얻어와, 그 색상으로 폼의 색상을 바꾸고 싶은데요..

    >

    > 어떤 함수를, 어떻게 써야 하는지 막막하기만 하네요.

    >

    > GetRvalue, GetGvalue.. 이런걸 써야 하나요?

    > 도움말을 봐도.. 영어가 짧아서.. 흑, 잘 모르겠네요.

    >

    > 도와주세요~~!



    안녕하세요. ^^

    Canvas에 Pixels[] 프로퍼티를 이용하심 됩니다.



    var

    TempColor: TColor;



    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

    Shift: TShiftState; X, Y: Integer);

    begin

    TempColor := Form1.Canvas.Pixels[x,y];

    end;



    이렇게 해서 얻어심 될것 같군요.

    참고하세요.



    그럼..20000.

  • Profile
    류제훈 2000.06.03 02:52
    먼저 친절하신 답변 감사드립니다. 꾸벅,

    근데요.. 폼 내부의 색상을 구하는게 아니라.. 폼 외부의 색상을 얻어오려고 합니다.

    폼은 조그맣게 만들고.. 그 폼 외부의 어떤 곳의 색상말이죠. 이를테면 웹서핑을

    하다가 괜찮은 그림이나 도안을 발견했을 경우, 그 그림에 마우스를 가져가면

    마우스 위치에 사용된 색상의 값을 구하려고 하는 목적입니다.



    이럴 경우(폼 외부)에.. 어떻게 색상을 구하는지요..





    > 안녕하세요. ^^

    > Canvas에 Pixels[] 프로퍼티를 이용하심 됩니다.

    >

    > var

    > TempColor: TColor;

    >

    > procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

    > Shift: TShiftState; X, Y: Integer);

    > begin

    > TempColor := Form1.Canvas.Pixels[x,y];

    > end;

    >

    > 이렇게 해서 얻어심 될것 같군요.

    > 참고하세요.

    >

    > 그럼..20000.

  • Profile
    조윤식 2000.07.13 19:01
    류제훈 wrote:

    > 먼저 친절하신 답변 감사드립니다. 꾸벅,

    > 근데요.. 폼 내부의 색상을 구하는게 아니라.. 폼 외부의 색상을 얻어오려고 합니다.

    > 폼은 조그맣게 만들고.. 그 폼 외부의 어떤 곳의 색상말이죠. 이를테면 웹서핑을

    > 하다가 괜찮은 그림이나 도안을 발견했을 경우, 그 그림에 마우스를 가져가면

    > 마우스 위치에 사용된 색상의 값을 구하려고 하는 목적입니다.

    >

    > 이럴 경우(폼 외부)에.. 어떻게 색상을 구하는지요..

    >

    >

    화면전체에 대한 마우스포인트의 색상얻어오는것은 아래와 같이 하시면 될겁니다.

    마우스 포인트 구하는 법은 게시판에 올라와 있는것으로 알고있습니다.

    var

    pt: TPoint;

    WindowHandle : THandle;

    Col:TCOLORREF;

    DC : hDC;

    begin

    WindowHandle := WindowFromPoint(pt);

    DC := GetWindowDC(WindowHandle);

    Col:= GetPixel(DC, pt.X, Pt.Y);

    Label11.Caption:=colorToString(col);

    end;

  • Profile
    류제훈 2000.07.14 10:57
    감사합니다.

    많은 도움이 되었습니다..



    좋은 하루 되시길 기원하겠습니다~~ 꾸벅~