|
이전 줌 아웃 기능을 구현할때, 속도 문제때문에 고생을 많이 했거든요.. Pixels 처리로는 힘들것 같구요.. 그래서 그냥 여차저차해서 생각한게, 자체 VCL의 Stratch 기능을 사용하는 거였습니다.
Stratch 기능은 아시겠지만, 속도는 어느정도 괜찮습니다. 실시간으로 마우스 움직이는 곳을 줌 시켜줄 수 있는 속도를 가지고 있으니깐요.
PutZoomInImage 함수를 써 본적이 없어서 잘 모르지만, 만약 굳이 PutZoomInImage 를 사용하시려면, ScanLine 처리를 하셔서 버퍼 형식으로 만드신 다음, PutZoomInImage 를 거치시고, 그 다음 다시 표현해주는 방법뿐일것 같습니다.
하지만, 줌 인아웃이 상당히 빈번히 사용하실때는, 이것도 좋은 방법은 아닙니다. ScanLine은 실행시 일시적으로 조금 멈춤 현상이 있습니다. Pixels은 계속 쓸때마다 느리기 때문에, ScanLine이 비교적 Pixels보다 빠르다는 것이지, ScanLine 자체도 그렇게 빠른것은 아닙니다.
이미지 두개를 놓으신 다음, 크기를 지정해 주시고, Stratch 프로퍼티를 Enabled, AutoSize를 Disabled 로 놓으신 다음, 이미지 복사를 하시면, 이미지 복사를 시키면서 자동으로 줌 인/아웃이 됩니다. 빈번하게 사용하실때는 이 것도 꽤 손쉬운 방법이라고 생각합니다.
barralm P SeungHun 님이 쓰신 글 :
: 버퍼 값을 받아서 줌인 줌아웃하는 함수를 만들었는데요.
:
: 일단은 TImage에 칼라값을 Canvas->Pixel[x][y] 식으로 찍고서 다른곳에 이 찍힌 값을 버퍼처럼 사용해서 줌인 줌아웃 함수에 넣어서 쓸려고 하거든요.
:
:
: 대충 이런 함수 인데..
:
: PutZoomInImage(int x, int y, LPWORD lpBuffer, int nWidth, int nHeight, int nZoomFlag);
:
: 여기 lpBuffer에 한번에 넣을수 있을수 없을까해서요.. 일단은 버퍼에 일일이 옮겨서 하고 잇는데... 그러면 너무 시간이 걸려서요. 그리고.. 칼라값이 틀려서 한번씩 컨버트 해주어서 하는데 어떻게 편하게 하는 방법이 없을가요?
:
|