Q&A

  • Pixels보다 빨리 읽는 법 없을까요?
A시간의 윈도우 화면과 B시간의 윈도우 화면을 비교해서
일정수준이상 변경된 경우를 체크할려고 합니다.

Canvas의 Pixels[i,j]를 이용해서 구현은 했는데,
비교하는데만 4.5초 정도 걸려버리네요.
일반 array같은 경우는 1024x768를 비교해도 1/1000초도 안 걸리는것 같은데
대부분 Pixels로 컬러값을 읽는데 소요되는것 같습니다.

Pixels[i,j]로 읽는것 말고, CopyRect나 aDC := bDC 했을
2  COMMENTS
  • Profile
    최용일 2005.11.28 17:48
    안녕하세요. 최용일입니다.

    TBitmap.ScanLine을 이용해보세요... 월등한 속도 향상을 볼겁니다.

    TBitmap에도 Canvas가 있으니까 사용하는데는 불편함이 없을겁니다.

    ^^ 항상 즐코하세요...

  • Profile
    하얀까마귀 2005.11.29 18:06
    pixels는 사용하는걸 별로 권장하지 않습니다.

    너무 느려요. ㅠㅠ

    용일이형 말대로 스캔라인을 쓰면 좀더 아니 훨신더 빨라집니다.

    이것보다 더 빠른속도 즉 픽셀단위의 작업이 아주 많은경우...

    다른걸 쓰셔야 합니다. 둘다 api를 쓰기 때문에 원천적인 문제가 있구요..

    픽셀의 값자체를 배열과같이 저장하는 콤포넌트들이 있습니다. 당연히 이건 배열에 접근하는 속도만큼 나죠.

    제가 써본것중에 성능이 좋았던것이 Graphic32 라는건데 상당히 좋더군요

    몇년전에 테스트한건데 스캔라인보다 두세배정도 빨랐던것으로 기억합니다.

    단지 둘다 빠르니까.. 0.1초냐 0.05초냐의 차이라서 체감속도는 별로 못느낍니다만..

    사용법도 스캔라인보다는 이쪽이 좀더 인지하기 좋고 계산이 많은경우는 이게 훨신 좋습니다.

    그럼..