한컴 사전에 보면 어느 윈도우건간에 현재 마우스가 위치해 있는 곳의 단어를
자동으로 인식하여 사전에 보여주는 기능이 있는데
어떤방법으로 하면 될까요?
window API 에 해당 기능이 있는 건가요?
Windows에 API가 있긴 있는데 시각장애자용이라 제한적이구요.
해당위치의 Top Window에서 그림을 읽어들여 OCR 처리하는 겁니다. ___________________________________ Less is More (Robert Browning)
___________________________________ Less is More (Robert Browning)
그런데 그렇게 하면, 각 폰트에 따라서 다른 결과가 나오지 않을까요?
ocr로는 제한점(폰트, 폰트 사이즈, 외국어)이 너무 많습니다.
win16기반(도스, win95, 98)과 nt와 처리하는 방법이 다릅니다.
nt가 비교적 쉬우니 설명드리면
InvalidateRect 을 호출하면 LPCRECT lpRect 영역만큼 다시 그려지게(이때 WM_PAINT 의 메세지를 통해서) 됩니다.
문자열이면 TextOut 류의 함수가 불리어지는데
BOOL TextOut(HDC hdc, int nXStart, int nYStart, LPCTSTR lpString, int cbString);
... TextOutA TextOutW ExtTextOut
관련 함수들을 후킹함으로서 인자중에 lpString 값을 얻어 구현할 수 있습니다.
Hand Script도 아니고 인쇄물 스캔한 것도 아니라 AI로 일반적으로 쓰이는 폰트를 공부 시켜놓으면 안틀리고 잘 인식합니다만..
TextOut hooking samplehttp://www.codeguru.com/cpp/w-p/dll/hooking/article.php/c3639/ ___________________________________ Less is More (Robert Browning)
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
Windows에 API가 있긴
Windows에 API가 있긴 있는데
시각장애자용이라 제한적이구요.
해당위치의 Top Window에서 그림을 읽어들여
OCR 처리하는 겁니다.
___________________________________
Less is More (Robert Browning)
___________________________________
Less is More (Robert Browning)
그런 방법도 있었군요...
그런데 그렇게 하면, 각 폰트에 따라서 다른 결과가
나오지 않을까요?
OCR이 아니라 보통 api 를 hook 해서 구현합니다.
ocr로는 제한점(폰트, 폰트 사이즈, 외국어)이 너무 많습니다.
win16기반(도스, win95, 98)과 nt와 처리하는 방법이 다릅니다.
nt가 비교적 쉬우니 설명드리면
InvalidateRect 을 호출하면 LPCRECT lpRect 영역만큼 다시 그려지게(이때 WM_PAINT 의 메세지를 통해서) 됩니다.
문자열이면 TextOut 류의 함수가 불리어지는데
BOOL TextOut(HDC hdc, int nXStart, int nYStart, LPCTSTR lpString, int cbString);
...
TextOutA
TextOutW
ExtTextOut
관련 함수들을 후킹함으로서 인자중에 lpString 값을 얻어 구현할 수 있습니다.
Hand Script도
Hand Script도 아니고
인쇄물 스캔한 것도 아니라
AI로 일반적으로 쓰이는 폰트를
공부 시켜놓으면 안틀리고 잘 인식합니다만..
TextOut hooking sample
http://www.codeguru.com/cpp/w-p/dll/hooking/article.php/c3639/
___________________________________
Less is More (Robert Browning)
___________________________________
Less is More (Robert Browning)
댓글 달기