|
StretchBlt함수를 쓰실때 rect영역의 좌표를 원본 해상도의 크기로 변환해서 호출하는 방법밖에 없을 듯 싶습니다.
Stretch = true일때 화면에는 스트레치 되어 작게 축소되어 표시되더라도
원본 자체에는 변함이 없으니.. 이미지 복사시의 dc는 원본 영역에서 하는듯 싶네요.
그러니 님 말씀대로 원본 이미지가 100*100인데 현재 50*50으로 보일 경우
화면 전체(0,0~50,50)를 복사한다고 해도 원본 해상도인 (0,0~100,100)으로 좌표계산을 해서 넘겨주셔야 할것 같습니다.
만약 (0,0~25,25)라면 (0,0~50,50)이 되겠죠.
-locke
이지석 님이 쓰신 글 :
: 그건 맞는데요... 원본 사이즈는 그데로인건 맞는데요.
: 제 질문의 의도를 이해 못하신 것 같은데...
:
: 제가 하고 싶은것은 원본의 큰 사이즈에서 특정 부분을 복사하려는 것이아니라 Stretch = true 인 이미지 컨트롤
: 즉 작게 보이는 이미지에서 특정 부분을 복사 하고 싶은 것이죠.
:
: 그런데 말씀하셨다 시피 원본 사이즈는 변하지 않고 그 변하지 않은 원본에서 복사가 된다는거죠.
: 제가 하고 싶은건 작아진 이미지에서 복사를 하고 싶은거죠...
:
: 부연 설명하면 실제 이미지 사이즈가 100 x 100 이고 이미지 컨트롤의 사이즈가 50 x 50 이라면
: 이미지 50 x 50 에서 특정 부분을 복사 하고 싶은거죠....
:
:
:
: 장성호 님이 쓰신 글 :
: : TImage에서 Stretch 속성을 true 로 주어도 원본이 커지거나 작아지지는 않습니다.
: :
: : 단지 화면에 보여줄때 TImage-Size에 맞춰 StretchBlt 해서 보여주는것 뿐이니다.
: :
: : 즉 원본size은 Picture에 load한 그 size 그대로라는것을 생각하고 코딩하시면 해결될듯 하네요
: :
: : 그럼..
: :
: : 이지석 님이 쓰신 글 :
: : : 안녕하세요!
: : : 질문이 하나 있는데요...
: : :
: : : TImge 컨트롤이 2개가 있습니다.
: : : A 컨트롤의 특정 부분을 B 컨트롤로 StretchBlt 함수를 써서 복사를 하려고 하는데요.
: : : 문제가 발생했습니다.
: : :
: : : 뭐냐면 A컨트롤의 Stretch 속성을 true 줘서 원본 이미지는 크기가 큰데도 A 컨트롤의 보여지는 사이즈는 훨씬 작습니다.
: : : 그런데 StretchBlt 함수를 써서 A 컨트롤의 특정 부분을 조그맣게 복사하려고 해도 원본의 사이즈에서 복사 한다는겁니다.
: : :
: : : 제가 원하는건 원본 이미지는 클지라도 A 컨트롤에서 특정 부분의 만큼만 복사하고 싶은데 말이죠.
: : : 즉 50 X 50 으로 복사를 하면 A 컨트롤에서 복사한다면 그 안에 이미지가 zoom out 해서 보여져야 하는데 원본에서 복사하므로 이미지가 zoom in 되어 복사된다는 것이죠....
: : :
: : : 어떻게 해결해야 할지 모르겠습니다.
: : : 아시는분 조언 부탁드립니다..
|