KR20080040696A - 연속식 제어 기능을 갖는 가상적 확대경 - Google Patents

연속식 제어 기능을 갖는 가상적 확대경 Download PDF

Info

Publication number
KR20080040696A
KR20080040696A KR1020087002958A KR20087002958A KR20080040696A KR 20080040696 A KR20080040696 A KR 20080040696A KR 1020087002958 A KR1020087002958 A KR 1020087002958A KR 20087002958 A KR20087002958 A KR 20087002958A KR 20080040696 A KR20080040696 A KR 20080040696A
Authority
KR
South Korea
Prior art keywords
enlarger
screen
magnifier
user
window
Prior art date
Application number
KR1020087002958A
Other languages
English (en)
Inventor
제이콥 플레이셔
조셉 케이. 나리
케빈 제이. 스미스
새뮤얼 에이. 맨
스콧 미첼 메일
마이클 윈저
데이비드 브이. 에스포시토
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20080040696A publication Critical patent/KR20080040696A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04805Virtual magnifying lens, i.e. window or frame movable on top of displayed information to enlarge it for better reading or selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Abstract

디스플레이 스크린 확대기가 스크린 상에 열린 창들을 포함하는 데스크탑의 선택된 부분들을 확대하기 위해 사용자에 의해 제어 가능하다. 확대 이미지가 제공되는 이동 확대기 프레임이 제공된다. 확대 이미지는 확대기 프레임 아래에 있는 확대 영역 내에 배치되고 설정 확대 레벨로 확대된 스크린 콘텐츠에 대응한다. 확대기는 입력 장치의 이용을 통해 제어 가능하다. 확대기의 적어도 하나의 작동 파라미터가 온스크린 개체들과의 상호작용이 없고 데스크탑 또는 스크린 상에 열린 어떤 창들로부터든 포커스를 떼어냄이 없이 조절될 수 있다. 본 발명의 특정한 실시예에서는, 확대기의 연속식 제어능력이 그 활성화 및 비활성화, 확대 레벨의 조절, 및 확대기 프레임의 크기의 조절을 포함한다.
디스플레이, 스크린, 확대, 프레임, 후크, 포커스, 개체, 제어

Description

연속식 제어 기능을 갖는 가상적 확대경{VIRTUAL MAGNIFYING GLASS WITH ON-THE-FLY CONTROL FUNCTIONALITIES}
이 특허 문서의 개시 중 일부는 저작권이 보호되는 내용을 포함한다. 저작권 소유자는 특허청 파일 또는 기록에서 보이는 특허 문서 또는 특허 개시 중 어느 것에 의한 팩시밀리 복제에 이견이 없지만, 그렇지 않은 경우에는 어떠한 경우에도 모든 저작권은 확보된다.
다양한 유형의 컴퓨터 디스플레이 스크린 확대 및 줌(zoom) 기능들이 알려져 있다. 일반적으로, 그러한 확대기(magnifier)는 컴퓨터의 스크린 상에 보이는 부분의 확대 사본(magnified copy)을 보여준다. 그러한 기능들은 시각 손상자를 위한 접근성 옵션(accessibility option)들로서, 및 다른 목적으로는, 특정한 애플리케이션 소프트웨어 내에 제공된 기능들로서, 및 OS(operating system)(예를 들어, 데스크탑) 레벨에서 및 사용자 애플리케이션들과 함께 사용하기 위해 일반적으로 이용 가능한 확대/줌 기능들을 제공하려는 전문 소프트웨어로서 제공되었다. 시각 손상자인 경우에, 그러한 기능들은 작은 스크린 텍스트 읽기 및/또는 아이콘 인식 등에 도움이 될 수 있을 것이다. 더 일반적으로, 확대 및 줌 기능들은 스크린 개체 또는 이미지들의 전부 또는 일부를 확대하는 것이 요구될 수 있는 애플리케이션 내에서 및 OS(예를 들어, 데스크탑) 레벨에서 유용할 수 있다.
줌 기능들을 제공하는 사용자 애플리케이션의 한 예는 어도비 아크로뱃(Adobe Acrobat)의 .pdf 문서 리더이다. 드롭다운 메뉴(dropdown menu)에 의한 표준 툴바 줌 레벨 선택(standard toolbar zoom level selection) 외에, 3종의 팬(pan) 및 줌 관련 기능들, 즉 루페 툴(Loupe Tool), 팬 및 줌 창(Pan & Zoom window), 동적 줌 툴(Dynamic Zoom tool)이 있다.
루페 툴의 경우에, 사용자는 슬라이더로 줌 레벨(zoom level)을 제어하고, 문서 내에서 클릭함으로써 줌 위치(zoom position)를 제어한다. 줌 영역(zoomed area)은 문서 상에서 줌 레벨에 크기가 역비례하는 직사각형으로 나타내어지며, 줌 뷰(zoomed view)는 별도의 창으로 도시된다. 팬 및 줌 창 기능의 경우, 크기조정 가능 박스(resizable box)가 작은 창으로 주어진 문서 페이지 상에서 이동할 수 있다. 박스로서의 배경 줌 및 팬으로 제공된 문서 뷰는 크기조정 및 이동된다. 동적 줌 툴(Dynamic Zoom tool)의 경우, 보통의 커서가 줌 모드에 들어갔음을 알리는 작은 확대경의 표시로 변한다. 이 모드에서는, 사용자가 문서 상에서 클릭할 수 있고, 동적으로 줌인 및 아웃(zoom in and out)하도록 드래그 업/다운(drag up/down)할 수 있으며, 문서의 측변에서 팬할 수 있다.
사용자 애플리케이션 소프트웨어의 일부로서 제공된 줌 기능의 또다른 예로서, 디지털 이미지 프로(Digital Image Pro)는 이미지들을 네비게이트하기 위한 창의 일부로서 제공된 툴바 상에 한 세트의 제어를 제공한다. 이들은 슬라이더 기반 줌 레벨(slider based zoom level), 100% 복귀 버튼(return to 100% button), 패닝 창(panning window), 및 선택 버튼으로의 줌(zoom to selection button)을 포함한다. 어도비 팬 및 줌 기능(Adobe Pan and Zoom feature)과 마찬가지로, 선택된 줌 레벨에 역 비례하는 크기를 갖는 박스가 작은 창으로 주어진 이미지 상에서 이동할 수 있다. 박스 내의 이미지 부분의 확대 뷰가 배경에 제공된다.
애플리케이션들은 보통 컴퓨터 마우스의 입력 기능들을 활용하여 줌 기능들을 구현한다. 예를 들어, 키보드 상에서 CTRL 키를 누르는 것과 함께 마우스 상의 스크롤 휠을 회전시키면(CTRL + 휠) 사용자가 애플리케이션을 줌인 및 아웃하게 할 수 있을 것이다. 각각의 애플리케이션은 그 고유의 주밍 증분(zooming increment)을 가지며, 스크롤 휠 주밍은 이러한 증분이 이루어지게 한다. 다른 줌 옵션들은 도 4의 관련 기술에 도시된 바와 같이 Microsoft IntelliPointTM(마우스) 소프트웨어 제어판 내에 상주한다. 버튼 탭 상에, 줌인 및 줌 아웃 명령(Zoom In and Zoom Out commands)들이 각각의 마우스 버튼을 위한 옵션들로서 최근에 추가되었다. 일부의 Microsoft 키보드들은 Microsoft IntelliTypeTM 소프트웨어의 제어 하에 운영하는 줌 콘트롤(Zoom control)(예를 들어, "슬라이더")을 갖는다.
OS(데스크탑) 레벨에서의 사용을 위해 개발된 확대기 소프트웨어에 비해, 특정한 사용자 애플리케이션을 위한 확대 및 줌 기능들의 개발에서는 더 큰 유연성이 있는데, 이는 애플리케이션이 그러한 기능들을 수용하기 위한 “견지(the ground up)”에서 구성될 수 있기 때문이다. 또한, 주문형 확대기(application specific magnifier)의 경우에, 독립적 실행 프로그램들을 갖는 확대기와 그 관련 창들의 상 호작용은 일반적으로 염려가 없다. 주밍은 애플리케이션에서 용이하게 이루어진다. 애플리케이션은 디스플레이될 콘텐츠의 내부 표시를 가지며, 올바르게 디자인되면, 콘텐츠를 상이한 크기 또는 줌 레벨로 디스플레이할 수 있다. Microsoft의 Word®에서는, 예를 들어, 스크린 상에 단지 몇 줄만 보일 때까지 줌인할 수 있지만, 폰트들이 벡터 그래픽스(비트맵이 아니라 문자들의 수학적 기술)에 기반하고 있기 때문에 텍스트는 매우 선명하다.
데스크탑과 함께 및 다른 어떤 열린 창들과 함께, 즉, OS(operating system) 레벨에서 사용하기 위해 일반적으로 이용 가능하게 디자인된 확대기의 경우에, 애플리케이션이 줌 기능을 가질 수 있다는 내부 표시는 이용 가능하지 않다. 오히려, 확대는 출력의 스크린샷(screenshot) 또는 비트맵의 조작에 의해 수행된다. 이것은 통상적으로 적용 가능한 스크린 해상도를 초과하게 상세함을 증가시키지 않을지라도, 사용자가 UI(user interface) 개체 및 텍스트를 더 큰 크기로 보게 한다. 그러한 확대기가 다양한 아래에 있는 스크린 구성요소들 및 창들(various underlying screen elements and windows)과 상호작용하는 방식은 매우 중요한 것이며, 즉 그 상호작용의 특성은 아마 기능의 실제 및 인지되는 편의성에 지대한 영향을 가질 것이다.
기존의 OS 레벨 스크린 확대 기능의 한 예는 Microsoft의 Windows XP® OS의 "Magnifier(확대기)"이다. Magnifier는 손상된 시각을 갖는 사용자들을 위해 스크린을 더 잘 읽을 수 있게 하는 디스플레이 유틸리티이다. 그것은 스크린의 확대된 부분을 디스플레이하는 별도의 창을 생성하며, 그 부분은 포인팅 장치 커서, 예를 들어, 마우스 포인터의 위치에 의해 결정된다. 사용자는 기능의 제어판의 설정값들에 의해 확대 레벨을 변화시킬 수 있다. 사용자는 Magnifier 창을 이동 또는 크기조정하거나, 또는 그것을 스크린의 변(edge)으로 드래그하여 그것을 그 자리에 잠글 수 있다.
알려진 스크린 확대 전문 애플리케이션은 줌 매직(Zoom Magic)이다. 시작될 때, 이 애플리케이션은 도 1에 도시된 바와 같이 사용자 지정 확대 창(custom magnification window)을 연다. 창은 보통 창처럼 크기조정 및 이동 가능하다. 모든 툴/설정값들이 제목 표시줄(title bar)에서 이용 가능하다. 창은 바로 아래에 있는 무엇이든 확대한다. 마우스 커서는 확대된 콘텐츠 위로 이동할 수 있지만, 그것은 그 콘텐츠와 상호작용할 수 없다.
도 1을 보면, 창 제목 표시줄에서 화살표 버튼을 클릭함으로써 시작되는 커서 추적 모드가 있다. 다양한 적색 화살표들을 클릭하는 것은 창을 상/하/좌/우로 도킹할 것이다. 중앙은 창의 도킹을 해제하고 그것을 보통 창으로 되돌린다. 이 모드는 다른 열린 창들의 오버레이(overlay)를 허용하지만, 확대 창 내에서 아래에 있는 애플리케이션 창(application window)들과의 상호작용을 허용하지 않는다. 커서 추적은 화살표 버튼을 클릭함으로써 토글 온/오프(toggle on/off) 될 수 있다. 확대 창을 데스크탑 및 다른 어떤 열린 창들의 위에 유지하는 옵션이 있지만, 이 모드에서 확대 창이 클릭되지 않는 한, 확대 이미지(magnified image)가 업데이트되지 않는다.
"렌즈"는 도 2의 관련 기술에 보이듯이 ABF Magnifying Tools(http://www.abf-soft.com/magnifying-tools.shtml)에 의해 제안된 확대경의 캐리커처를 생성하는 툴이다. 사용자는 드래그함으로써 확대경을 재배치하여 스크린의 영역들을 선택적으로 줌인하기 위해 이용할 수 있다. 사용자는 + 및 - 버튼들을 클릭함으로써 확대 레벨을 조절할 수 있다. 이 툴은 활성화 시기에 정적 스크린 샷(static screen shot)을 취한다. 스크린 상에서 어떤 것이든 변화하면, 그것은 줌 이미지(zoomed image)에 반영되지 않는다.
알려진 접근성 전문 애플리케이션(accessibility specialty application)의 다른 한 예는 AI2(http://www.aisquared.com/index.htm)에 의한 ZoomText 8.1이다. 애플리케이션이 시작될 때, 모달 제어판 유형 UI(user interface)가 도 3의 관련 기술에 도시된 바와 같이 나타난다.
ZoomText 8.1의 확대기/줌 기능들은 아래와 같은 몇몇 모드들을 갖는다.
Full Screen Mode는 전체 스크린을 증분적으로 확대한다. 마우스가 스크린의 변들에 접근함에 따라, 패닝(panning)이 자동으로 시작된다.
Overlay Mode는 스크린의 하우측 코너에 크기조정 가능 사각 창(resizable square window)을 생성한다. 마우스는 보통(1:1) 뷰를 추적하고, 그 이동은 확대 뷰에서 미러(mirror)된다. 마우스가 스크린의 변들에 접근함에 따라, 줌 창(zoom window) 내에서 패닝이 자동으로 시작된다.
Lens Mode는 마우스 커서와 함께 이동하는 부동(floating) 크기조정 가능 사 각 창을 생성한다. Line Mode는, 마우스 커서의 Y 좌표의 변화와 함께 상하로 이동하는, 스크린을 가로지르는 수평 밴드(horizontal band)를 생성한다. 사용하는 동안에 스크린 콘텐츠(screen content)의 변화를 반영하기 위해 확대 창 내에서 동적 업데이팅이 일어나며, 확대 창을 통해 아래에 있는 애플리케이션 창들과의 상호작용이 이루어질 수 있고, 즉, 마우스 및 키보드 입력이 확대기를 통과해서 아래에 있는 창으로 보내지는 것을 허용한다.
Docked Mode는 스크린의 상, 하, 우 또는 좌변의 어느 것에든 배치되는 크기조정 가능 밴드(흑색으로 윤곽이 그려짐)를 생성한다. 마우스 이동은 줌 뷰에서만 추적되며, 1:1 뷰는 잠겨진다.
인에블될 때, Freeze It 툴은 사용자가 스크린 상에 크기조정 가능 박스를 드로우(draw)하는 것을 허용하고 그 위치를 로크 다운(lock down)("프리즈")시킨다. 미리 정의된 박스 뷰는 줌 위치를 특정한 X 및 Y 좌표로 잠근다. 그 영역 내에서의 콘텐츠 변화는 확대되고, 그 후 그것은 박스 내의 확대된 콘텐츠에 반영된다. Freeze 모드는 "Full Screen" 확대기 모드에서만 이용 가능하다. Full Screen 모드에서는, 렌즈가 없고, 즉 전체 스크린이 확대되며, 마우스는 "오프 스크린(off-screen)" 영역들로 팬한다.
알려진 디스플레이 스크린 확대기들은 그들의 단순성과 편리성 및 그 사용에 대한 직관성 측면에서 그다지 이상적이지 못하다. 또한, 일부의 확대기들이 구현되는 방식은 그것들이 취약하게 하고, 즉 OS/드라이버 업데이트 및 패치의 경우에 정상 작동이 어려워질 수 있다.
컴퓨터 데스크탑 및 다른 열린 창들 "위로 부동(float above)"할 수 있고, 그 아래에 있는 것에 대한 자연스럽고 직관적인 방식의 확대 뷰를 제공할 수 있으며, 아래에 있는 데스크탑/창들과의 제약 없는 뷰잉 및 상호작용을 허용할 수 있다는 측면에서 한 층 더 실제의 광 렌즈 확대기처럼 거동하는 로버스트 컴퓨터 구현 디스플레이 스크린 확대기(robust computer implemented display screen magnifier)를 갖는 것이 바람직할 것이다.
윈도우즈 기반 GUI(graphical user interface)를 제공하는 OS, 예를 들어, Microsoft의 Windows® OS와 함께 사용하려는 확대 애플리케이션을 구현하는 것은 어떤 도전을 준다. 확대기가 보통 창처럼 생성되면, 확대 창 자체가 그것이 열릴 때 데스크탑의 일부가 된다. 결과적으로, 확대를 위한 데스크탑 이미지들을 얻기 위한 시스템 호출들은 확대기 창 자체를 포함할 것이다(그리고, 그 아래에 있는 GUI의 부분들을 포함하지 않을 것이다). 확대하기 위해 그러한 시스템 호출들을 이용하면, Windows XP 확대기에서처럼, 무한 미러 효과(infinity mirror effect)에 이른다. 사용자 측에서 보자면, 그/그녀는 확대 창 아래에 있는 것의 확대 뷰를 얻는 것이 방해받게 된다.
이미 언급한 ZoomText 제품 등과 같은 다수의 이용 가능한 확대 애플리케이션들은 드라이버 연결(driver chaining)이라고 알려진 기술을 이용하여 앞서 기술된 곤란을 처리했다. 이 방식에 의하면, OS에 의해 합성된 스크린 콘텐츠의 선택된 부분이 비디오 디스플레이 드라이버에 가기 전에 커널 레벨 확대기에 의해 가로 채어져 조작된다. 스크린 읽기 또는 스크린 확대 소프트웨어의 경우에, ATV(assistive technology vendor)들은 사실상 디스플레이 드라이버를 찾고, 그것을 위해 요구되는 정보를 얻은 후, 때때로 변경된 DDI(Display Driver Interface) 호출들을 원본 디스플레이 드라이버에 보낸다.(특정 원격 제어 소프트웨어가 또한 원격 컴퓨터로 보내지는 정보를 가로채기 위해 이 기술을 이용하기도 한다.) DDI 인터셉션 기술은 드라이버 연결(driver chaining)이라고 지칭된다. 연결된 드라이버는 GDI로부터 디스플레이 드라이버로의 DDI 호출들을 가로채고 스크린의 일부를 확대하기 위한 방식으로 그 호출들을 조작한다. Windows® OS가 관련이 있는 한, 중첩된 확대기 출력은 절대로 없으며, 그래서 데스크탑의 부분들을 복사하기 위한 호출들은 그것을 알지 못할 것이다.
드라이버 연결이 미리 설정된 OS/드라이버 관계를 간섭하기 때문에, 그것은 OS 공급자, 예를 들어, Microsoft에 의해 공식적으로 지원되지 못할 것이다. 결과적으로, 그 기술은 매우 취약하고, 예를 들어, OS가 새로운 서비스 팩 또는 드라이버들로 업그레이드되면 제대로 기능하지 못할 수 있다. 드라이버 연결, 및 스크린 확대기 및 다른 보조 기술 제품들에서의 그 애플리케이션에 관한 추가 정보는 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacc/html/atg_driverchain.asp의 MSDN(Microsoft Developers Network)에서 찾아볼 수 있다.
컴퓨터 디스플레이 확대기를 위한 설정값들을 변화시키는 것은 통상적 제어 판을 통한 느리고 불편한 것이다. 사용자가 작업 상황을 상실하거나 또는 제어판에 대한 액세스나 아니면 온스크린 툴/개체(on-screen tools/objects)들과의 상호작용을 요구함이 없이 기본적 확대기 제어 기능들을 연속식으로(on-the-fly) 수행할 수 있었다면 매우 유리했을 것이다.
열린 창들로부터 포커스(focus)를 떼어냄이 없이 확대기의 크기 및/또는 확대 레벨을 활성화, 비활성화, 배치 및 조절할 수 있는 것이 매우 유리할 것이다. 확대기가 포커스를 잡고 마우스/키보드 입력을 받았다면 확대기 설정값들은 쉽사리 변화될 수 있을 것이다. 그러나, 이것은 사용자가 설정값 조절을 완료했을 때 관심 있는 애플리케이션에 대해 포커스를 반환하는 것에 대한 문제가 있다. 애플리케이션이 활성 상태로 되고 가장 앞쪽에 복귀할 때, 그것이 동일한 상태에 있지 않을 수 있고, 키보드 포커스가 상이한 제어부에 있을 수 있다.
본 발명은 디스플레이 스크린 및 사용자 입력 장치(예를 들어, 컴퓨터 마우스, 트랙볼 또는 터치 패드 등과 같은 포인팅 장치, 또는 컴퓨터 키보드)가 제공된 데이터 처리 장치(예를 들어, 범용 또는 전용 컴퓨터) 상에서 실행 가능한 소프트웨어/펌웨어 기반 시스템 및 방법들을 제공한다. 이러한 시스템 및 방법들은 스크린 디스플레이의 콘텐츠의 부분들을 편리하고 선택적으로 확대할 수 있는 수단을 제공하는 역할을 한다. 앞서 기술된 바와 같은 알려진 확대기들의 하나 이상의 단점들을 해결하기 위해, 그러한 디스플레이 스크린 확대기를 제공하는 새로운 방식이 제공된다.
본 발명에 따른 확대기는 데스크탑 및 스크린 상에 열린 창들의 선택된 부분들을 확대하려는 사용자에 의해 제어될 수 있다. 이동 확대기 프레임(moveable magnifier frame)이 제공되고, 그 안에 확대 이미지가 주어진다. 확대 이미지는 확대기 프레임의 아래에 있는 확대 영역(magnification region) 내에 배치되고 설정 확대 레벨(set level of magnification)로 확대된 스크린 콘텐츠에 대응한다.
본 발명에 따른 확대기는 사용자 입력 장치의 이용을 통해 연속식으로 제어될 수 있다. 온스크린 개체들과의 상호작용이 없이, 그리고 데스크탑 또는 스크린 상에 열린 어떤 창들로부터든 포커스를 떼어냄이 없이, 확대기의 적어도 하나의 작동 파라미터(operational parameter)가 조절될 수 있다. 본 발명의 특정한 실시예에서는, 확대기의 연속식 제어능력이 확대기를 활성화 및 비활성화하는 능력, 그 확대 레벨을 조절하는 능력 및 그 확대 프레임의 크기를 조절하는 능력을 포함한다.
본 발명의 한 양태에 따르면, 디스플레이 스크린 확대기가 OS(operating system)의 API(application programming interface)들, 즉 창 스타일(windows style), 및 창 스타일과 관련된 제2 스테이지 스크린 콘텐츠 합성 엔진(second stage screen content compositing engine)에 의해 이용 가능해진 자원들을 레버리징(leveraging)함으로써 운영하도록 구성된다.
본 발명의 한 양태에 따르면, 확대될 데스크탑을 얻기 위한 콜들에 대해 사실상 비가시적인 확대기 창이 생성된다. 이것은 관측자가 확대기의 바로 아래에 있는 것을 볼 수 있게 하고 열린 애플리케이션 창 및/또는 데스크탑으로부터 포커스를 떼어냄이 없이 확대기와 상호작용할 수 있게 하여 확대기를 직관적으로 운영할 수 있게 한다. 본 발명의 한 실시예는 Microsoft Windows® 2000 및 XP OS들의 API들에 의해 이용 가능해지는 창 스타일을 잘 이용한다. 이 방식으로, 취약한 드라이버 연결 기술을 이용할 필요가 회피된다.
본 발명의 상기 및 기타의 목적, 기능 및 장점들은 양호한 실시예들에 대한 다음의 상세한 기술을 부속된 도면들과 관련하여 읽으면 곧 자명해지고 잘 이해될 것이다.
도 1은 관련 기술의 확대기 제품의 온스크린 확대 창을 도시하는 스크린 샷이다.
도 2는 다른 한 관련 기술의 확대기 제품을 도시하는 스크린 샷이다.
도 3은 관련 기술의 확대기 제품의 온스크린 툴 바 창을 도시하는 스크린 샷이다.
도 4는 본 발명의 출원인의 관련 기술의 컴퓨터 마우스 제품과 함께 이용하기 위한 소프트웨어의 일부로서 제공된 제어판을 도시한다.
도 5는 본 발명의 한 스크린 확대기 실시예에 의해 수행된 일련의 선택적 처리 단계들을 예시하는 플로우 다이어그램이다.
도 6은 확대기의 조절 모드 동안에 나타나는 중첩된 힌트 그래픽들을 포함하는 본 발명의 이동 및 조절 가능한 확대 프레임을 예시하는 스크린 샷이다.
도 7은 본 발명의 한 양태에 따른 프레임 비트맵 생성 프로세스의 다이어그램적 표현이다.
도 8은 본 발명의 한 양태에 따른 마스크 비트맵 생성 프로세스의 다이어그램적 표현이다.
도 9A는 확대기 프레임("MagnifierWindow Rectangle")과 하위 확대 영역("Capture Rectangle")의 관계를 도시하는 확대를 위해 선택된 묘사적 이미지 부분을 포함하는 다이어그램적 도면이다.
도 9B는 도 9A에 도시된 이미지 부분에 대응하는 확대 이미지의 생성 및 제시를 위한 본 발명의 프로세스의 스테이지들을 예시하는 일련의 도면이다.
도 10A 내지 10C는 본 발명의 한 양태에 따른 1.5x "신장(stretching)" 알고리즘에 의해 수행된 프로세스를 예시하는 다이어그램적 도면이다.
본 발명에 따른 온스크린 확대기(on-screen magnifier)는 확대 이미지가 제공되는 이동 확대기 프레임(movable magnifier frame)을 포함한다. 확대 이미지는 확대기 프레임 아래에 있는 확대 영역 내에 배치되고 설정 확대 레벨로 확대된 스크린 콘텐츠에 대응한다.
본 발명의 한 실시예에 따른 디스플레이 스크린 확대기는 그것이 활성화되는 동안에 그것이 데스크탑 및 스크린 디스플레이의 다른 어떤 열린 창들의 위에 유지되도록 구성된다. 그것은 사용자 입력 장치(예를 들어, 마우스 또는 키보드)의 이벤트들을 확대기의 아래에 있는 창들에 전달하고, 아래에 있는 스크린 콘텐츠에서 의 변화를 반영하기 위해 확대 이미지를 동적으로 업데이트한다. 그러한 디스플레이 스크린 확대기는 디스플레이 스크린 및 사용자 입력 장치가 제공된 범용 컴퓨터 또는 다른 데이터 처리 장치 상에서 실행되는 소프트웨어 또는 펌웨어로 구현될 수 있다.
본 발명의 한 양태는 OS(operating system)의 기존의 API(application programming interface)들, 특히 창 스타일, 및 그 창 스타일과 관련한 제2 스테이지 스크린 콘텐츠 합성 엔진을 통해 이용 가능해진 자원들을 레버리징함으로써 앞서 기술된 거동을 성취하는 것을 수반한다. 여기에서 이용되는 "창 스타일"은, 한 세트의 API들 중에서 명시된 하나 또는 다수의 명시된 창 스타일들 중에 포함된 파라미터 세트들을 포함하는, GUI(graphical user interface)의 일부로서 나타날 창의 기능적 및/또는 시각적 특징들을 지정하는 어떤 파라미터 세트든 광범위하게 포함한다. 본 발명의 방식은 취약한 드라이버 연결 기술들의 대신에 이용될 수 있다.
본 발명의 예시적 실시예에서는, 확대기가, 퍼스널 컴퓨터들을 위한 Microsoft의 Windows® 2000 및 XP OS들의 API들의 일부로서 제공되는, 다음의 확장된 창 스타일들과 함께 생성된 확대 창을 포함한다.
WS_EX_TRANSPARENT: 이 창 스타일은 이 창의 아래에 있는 창들이 페인트(paint)되기까지 이 창이 페인트되지 않을 것임을 명시한다. 이것은 확대기가 드로우되기 전에 확대기의 아래의 스크린의 “스냅샷(snapshot)"이 취해지게 한다.
WS_EX_LAYERED: 이 스타일이 WS_EX_TRANSPARENT 스타일과의 결합으로 사용될 때, 확대기 창은 마우스 또는 키보드로부터 사용자 입력을 수신하지 않을 것이고, 모든 입력은 확대기 아래의 애플리케이션들에 전달된다. 확대기 창이 계층적 투명창으로서 생성될 때, 포인팅 장치(예를 들어, 마우스) 이벤트들은 계층적 창 아래에 있는 다른 창들로 전달된다. 또한, 이 창 스타일은 확대기에게 알파 블렌딩 프레임(alpha blended frame)을 주기 위해 이용될 수 있는 픽셀 당 알파 블렌딩(per-pixel alpha blending)을 최적화한다. 이 특징은 사용자에게 확대기가 데스크탑 위에서 "부동"하고 있다는 시각적 표지를 주기 위해 이용될 수 있다.
WS_EX_NOACTIVATE: 이 창 스타일은 또한 창이 “포커스”을 갖지 않게 한다. 즉, 확대기 창이 보통 정도로 시각적으로 강조되는 창(예를 들어, 제목 표시줄이 제공된 보통 창)으로서 제공되면, 그 창은 포인팅 장치(예를 들어, 마우스)로 창 안을 클릭할 때 활성 창처럼 시각적으로 강조되지(예를 들어, 빛내어지지) 않을 것이다. 사용자는 확대기를 통해 클릭할 수 있다. 또한, 키보드 이벤트(입력)들은 확대기에 의해 캡처되지 않을 것이다. 이것은 사용자가 확대기 아래에 있는 애플리케이션 창들과 자유롭게 상호작용하도록 허용한다. 또한, 이 스타일의 경우에, 확대기는 작업 표시줄 상에 나타나지 않는다.
WS_EX_TOOLWINDOW: 이 스타일의 추가는 확대기가 열린 창/애플리케이션들의 Alt 탭 목록에 나타나지 않게 한다.
WS_EX_TOPMOST: 이 창 스타일은 확대기를 최상단 창으로서 유지한다. 그것이 없으면, 다른 창들의 뒤로 확대기가 사라짐으로써 확대기의 유틸리티가 줄어들 수 있다.
Microsoft의 Windows® OS들의 API들에 포함된 상기 및 기타의 확장된 창 스타일들에 대한 추가 정보는 예를 들어, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ winui / winui / windowsuserinterface /windowing/windows/ windowreference / windowfunctions /createwindowex.asp에서의 MSDN(Microsoft Developers Network)에서 찾아볼 수 있다.
사용될 수 있는 예시적 확대기 창 생성 기능이 아래에서 설명된다.
Figure 112008009060861-PCT00001
본 발명의 한 양태에 따른 확대기의 선택적 처리가 도 5에 예시된다. 확대기 창이 활성화 되면, 확대기가 예정된 속도(예를 들어, 초 당 약 15 내지 24회)로 타이머 메시지를 수신하도록 타이머가 설정된다. 한 실시예에서는, 타이머 간격이 15밀리초, 즉 초당 67회로 설정된다. 확대기는 확대기가 사용되는(활성화되는) 동안에 일어나는 하위 스크린에서의 변화를 반영하도록 확대기 이미지를 연속으로 업 데이트하기 위해 타이머 메시지를 사용한다. 표시된 범위에서의 업데이트 빈도는 확대 프레임이 스크린 상에서 이동됨에 따라, 또는 그 아래의 창에서 재생되는 애니메이션이 있고, 그럼으로써 스크린의 전면에서 유지 및 이동되는 실제의 광 확대경의 모습을 에뮬레이트하면 확대 이미지가 비교적 원만하게 변화되게 한다. 도 5에 도시된 바와 같이, 타이머 메시지가 수신될 때, 확대될 영역이 캡처되고, 확대기 창이 최상단에 설정되며, 캡처 영역이 적절한 확대 레벨로 확대기 속으로 드로우된다(예를 들어, "블릿(blit)을 늘임").
본 발명의 한 실시예는 USER32(Win32 창 관리자)가 투명창들이 생성될 때 스크린 콘텐츠의 합성의 제2 스테이지를 수행하기 위한 비교적 단순한 합성 엔진을 구현한다는 사실을 잘 이용한다. 이것은 보통 정도의 데스크탑 합성 프로세스와 상이하고 추가적인 정도의 합성의 "제2 스테이지"이다. Microsoft의 Windows® OS들에 의해 채택된 보통의 합성 프로세스는 종종 변경된 페인터즈 알고리즘(modified painters algorithm)이라고 지칭되는 것을 따른다. 창들은 거꾸로 된 z자 순서로(거꾸로) 데스크탑에 페인트된다. 콘텐츠들이 추가되거나 또는 변화가 일어난 영역으로 다시 드로우될 스크린의 영역들을 제한하고, 그럼으로써 스크린 깜박임(screen flicker)을 회피하고 실제의 페인팅/드로우잉 작업의 양을 줄이기 위해 적극적인 "클리핑(clipping)"이 이용된다.
창이 Windows®가 창의 픽셀들을 그 “뒤”에 있는 어떤 것에든 통합할 것을 요구하는 드롭 셰도우즈(drop shadows), 투명도(transparency) 또는 다른 어떤 효 과를 이용할 때, Windows®는 데스크탑 및 투명 창들을 위해 중간 비트맵 버퍼들을 각각 생성한다. 이러한 버퍼들의 콘텐츠들은 그 후 최종 출력을 생성하도록 "합성"된다. 데스크탑의 스냅샷을 취하기 위한 호출(예를 들어, GetDC(NULL)) 및 데스크탑으로부터 블릿을 늘이기 위한 호출(StretchBlt)은 제2 스테이지 합성 프로세스로부터 산출되는 데스크탑이 아니라 데스크탑 버퍼를 이용할 것이다. 그 자체를 Windows® "투명" 창(그 불투명도가 100%로 설정될지라도)으로 만듦으로써, 확대 창은 제2 스테이지 합성 프로세스를 인에이블하고, 그 자체를 메인 데스크탑 위에 둔다. "최상단(topmost)" 창 스타일을 이용하면, 새로운 창이 그 후에 나타나서 그 자체를 최상단으로 설정하는 것을 방지함으로써, 확대기를 최상단에 유지할 것이다.
본 발명에 따른 확대기는 디스플레이 스크린 상에서 이동가능하고 크기조정 가능한 확대 프레임을 제공하며, 그 안에는 확대 프레임의 아래에 있는 확대 영역에 있는 스크린 콘텐츠에 대응하는 확대 이미지가 제공된다. 여기에 기술된 주요 실시예에서는, 확대 프레임/렌즈가 포인팅 장치 커서 상에 피닝(pinning) 및 센터링(centering)되어 그것과 함께 이동하도록 된다. 다른 실시예들에서는, 확대 프레임(확대기의 가상 "렌즈"의 경계를 정함)이 포인팅 장치 커서와 독립적으로 이동 가능하게 될 수 있다.
본 발명의 한 양태에 따른 컴퓨터 디스플레이 확대기는 데스크탑 및 어떤 열린 창들 위에서든 "부동(float)"하고, 포커스를 데스크탑 또는 어떤 열린 창으로부 터든 떼어내지 않는다. 앞서 기술된 바와 같이, 이것은 바람직한 특징이다. 그러나, 그것들은 확대기의 크기를 조정하고 그 확대 레벨을 변화시키는 방법에 관한 문제를 준다. 보통의 애플리케이션 창들인 경우, 이것은 사소한 것이고, 크기조정은 창 경계들을 클릭 및 드래그함으로써 이루어질 수 있을 것이고, 확대 레벨은 온스크린 제어로 변화될 수 있다. 그러나, 이와 같은 방법들을 이용하는 것은 포커스가 다른 열린 창들로부터 떨어지게 하고, 그것은 의도되지 않고 바람직하지 않은 결과이다. 설정값들은 제어판 페이지를 통해 변화될 수도 있지만, 이 방식은, 특히 컴퓨터 상에서 다양한 작업들을 수행하는 과정에서 빈번하고 간헐적인 확대기의 도움을 원할 수 있는 사용자인 경우에, 번거롭고 시간소모적인 것이다.
본 발명의 한 양태에 따르면, 사용자 입력 장치(예를 들어, 컴퓨터 마우스 또는 키보드) 상에 제공되는 지정 확대 버튼(designated magnify button)을 클릭함으로써, 사용자에 의해 사실상 순간적으로 토글 온 및 오프될 수 있는 확대기가 제공된다. 확대기 제어 스위치는 전용 버튼(또는 다른 유형의 사용자 작동 가능 스위치) 또는 사용자에 의해 확대 기능에 할당된 버튼일 수 있을 것이다.
예시적 실시예에서는, 확대기가 스크린 상에 디스플레이되면, 사용자는 조절 모드에 들어가기 위해 예정된 짧은 시간(예를 들어, 약 0.5초) 동안 확대 버튼을 눌러서 붙잡고(hold down) 있을 수 있다. 사용자에게 조절 모드가 활성 상태라는 신호를 보내기 위해, 도 6에 도시된 바와 같은 그래픽이 확대기 프레임에 의해 경계가 정해진 확대 렌즈 영역에 나타내어질(예를 들어, 페이드 인투(fade into)) 수 있다. 조절 모드에 있는 동안, 사용자는 렌즈의 배율 및 크기를 변화시킨다. 도 6에 도시된 바와 같이, 스크린 상에 나타나는 그래픽은 확대기의 조절을 달성하기 위해 적합한 사용자 입력(예를 들어, 마우스 이동 및 스크롤 휠 회전)들의 시각적 표시를 제공할 수 있을 것이다. 그러나, 사용자는 조절을 달성하기 위해 그러한 그래픽들과 상호작용하지 않는다. 확대 렌즈/프레임의 크기를 변화시키기 위한 예시적 구성이 아래에 개략적으로 설명된다.
확대기가 활성화된 경우에, 확대기 프레임의 폭 치수에 대한 변화들은 다음의 방식으로 달성될 수 있을 것이다. 사용자가 확대 기능에 할당된 마우스 버튼을 눌러서 붙잡고, 마우스를 예정된 방향으로 예정된 거리(예를 들어, 오른쪽으로 50픽셀)만큼 이동시키면, 확대기 프레임은 그 방향으로의 마우스의 이동에 대응하는 속도로 크기가 증가될(예를 들어, 그 우측과 좌측 중 하나 또는 둘 다) 수 있다. 사용자가 지정 마우스 버튼(designated mouse button)을 눌러서 붙잡고 마우스를 제2 예정된 방향으로 예정된 거리(예를 들어, 좌측으로 50픽셀)만큼 이동시키면, 확대기 프레임은 그 방향으로의 마우스의 이동에 대응하는 속도로 크기가 감소될(예를 들어, 우측과 좌측 중 하나 또는 둘 다) 것이다.
확대기가 활성화된 경우에, 확대기 프레임의 높이 치수에 대한 변화들도 유사하게 달성될 수 있을 것이다. 사용자가 지정 마우스 버튼을 눌러서 붙잡고 마우스를 제3 예정된 방향으로 예정된 거리(예를 들어, 아래로 50픽셀)만큼 이동시키면, 확대기 프레임은 마우스의 이동에 대응하는 속도로 크기가 증가(예를 들어, 하측과 상측 중 하나 또는 둘 다)하기 시작할 것이다. 사용자가 지정 버튼을 눌러서 붙잡고 마우스를 제4 예정된 방향으로 예정된 거리(예를 들어, 위로 50픽셀)만큼 이동시키면, 확대기 프레임은 마우스의 이동에 대응하는 속도로 크기가 감소(예를 들어, 하측과 상측 증 하나 또는 둘 다)하기 시작할 것이다.
확대기 프레임의 크기에 대한 수직 및 수평 변화들은 앞서 기술된 마우스 이동들의 결합에 의해 동시에 이루어질 수 있다. 확대기의 크기 설정값들은 다음에 확대기가 시작될 때, 확대기 프레임/렌즈가 전에 그것이 마지막으로 닫혔을 때와 동일한 크기로 되도록 보존될 수 있을 것이다.
확대기가 활성화된 경우에, 확대 레벨은 다음의 방식으로 변화될 수 있을 것이다. 사용자가 지정 마우스 버튼을 누르고나서, 눌린 버튼을 붙잡고 마우스 휠을 자신을 향해 회전시키면, 확대 레벨은 최소 확대 레벨(예를 들어, 1:1 확대 비율)로 설정된 어떤 경계 내에서 감소할 것이다. 사용자가 지정 마우스 버튼을 누르고나서, 눌린 버튼을 붙잡고 마우스 휠을 자신으로부터 멀리 회전시키면, 확대 레벨은 (최대 확대 레벨에 의해 설정된 어떤 경계 내에서) 증가할 것이다. 예시적 실시예에서는, 확대기 레벨이 다음의 레벨, 즉 1.5x, 2x, 3x, 4x 및 5x로 증분적으로 조절 가능하다.
확대기가 비활성화(오프)된 경우, 지정 마우스 버튼을 누르고나서 놓는 것은 확대기가 활성화되어 스크린 상에 나타나게 할 것이다. 다음에 버튼을 순간적으로 누르면 확대기를 즉시 비활성화시킬 것이다. 확대기가 비활성화된 동안, 사용자가 지정 버튼을 누르고나서 눌린 버튼을 붙잡고 마우스 휠을 자신을 향해 또는 멀리 회전시키면, 스크롤 이벤트(scroll event)들은 포커스를 갖는 애플리케이션으로 갈 것이다. 사용자가 확대 버튼을 놓을 때, 확대기는 활성화되어 스크린 상에 나타날 것이다.
본 발명에 따른 예시적 확대기는 Microsoft의 Windows® 2000 및 XP OS들에 의해 제공된 API들의 일부로서 이용 가능한 확장 창 스타일(extended windows style)들을 이용하여 구현된다. 특히, 확대기는 주기적으로 스크린 이미지의 일부를 캡처하고, 그것을 늘이며, 그 창 이미지를 업데이트하는 단일 계층적(WS_EX_LAYERED), 투명(WS_EX_TRANSPARENT) 창으로서 구성될 수 있을 것이다. 이러한 특정한 창 속성들은 창이 데스크탑 및 어떤 열린 애플리케이션 창들 위에서든 "부동"하게 한다. 이러한 스타일 플래그(style flag)들이 설정된 경우, 확대기는 결코 포커스를 받지 않는다. 대신에, 마우스로부터의 사용자 입력을 선택적으로 획득하기 위해, 진행중인 사용자 작업 및 애플리케이션 프로세스들을 간섭함이 없이 확대기에 대한 조절들을 행하기 위해 이용되는, 소프트웨어 "후크(hook)"들이 이용된다.
위에 기술된 주요 실시예에서는, 확대기에 대한 조절들을 달성하기 위해 마우스 및 스크롤 휠 이동과 관련하여 이용되는 입력 버튼을 제공하기 위해 컴퓨터 마우스가 이용된다. 그러나, 확대기의 연속식 제어능력(on-the-fly controllability)을 제공하기 위해, 트랙볼 장치, 컴퓨터 키보드, 터치 패드 및 조이스틱들을 포함하는 다른 다양한 알려진 사용자 입력 장치들이 이용될 수 있음을 알 것이다.
본 발명의 예시적 실시예에 따르면, 확대 버튼이 조절 모드에 들어가기에 충 분히 길게 눌린 채 유지되면, 마우스 후크(mouse hook)가 설정된다. 마우스 후크는 마우스 발생 입력(mouse-generated input)을 "먹어치우고(eat)", 그것을 보통으로는 아무 입력도 수신하지 않는 확대기 창으로 전송(redirect) 한다. 마우스 입력(마우스 이동 및 스크롤 휠 회전 정보)은 설정값들을 조절하기 위해 이용된다. 아래에 있는 어떤 "포커스 상태(in focus)"인 애플리케이션이든 마우스 후크가 설정된 동안에는 아무런 마우스 이동 또는 스크롤 휠 통지들도 수신하지 않는다. 후크는 조절 모드에서 빠져나가자마자 릴리즈(release)되며, 이것은 버튼을 릴리즈하는 즉시 일어나서, 포커스되고 있는 애플리케이션이 마우스 입력을 다시 수신할 수 있게 한다. 포커스 애플리케이션은 결코 포커스를 상실하지 않으므로, 의도되지 않은 부차 효과가 전혀 없다. 기술된 예시적 확대기에서는, 설정값들이 3개의 레지스크리 값(registry value), 즉 확대 레벨(magnification level), 픽셀로 나타낸 확대기의 폭(width of magnifier, in pixels) 및 픽셀로 나타낸 확대기의 높이(height of magnifier, in pixels)로서 저장된다.
Microsoft의 WindowsTM OS들과 함께 사용할 수 있는 "후크"들에 관한 정보는, 예를 들어, http://msdn.microsoft.com/librarv/default.asp?url=/library/en-us/dnwui/html/msdnhooks32.asp에서의 MSDN(Microsoft Developers Network)에서 찾아볼 수 있다.
또한, 아래도 보라.
http://msdn.microsoft.com/library/default.asp?url=/library/en- us / winui / winui / windowsuserinterface / windowing / hooks . asp.
본 발명의 확대기의 예시적 실시예의 구현을 위해 적합한 소프트웨어는 두개의 주요한 클래스(class)들, 즉 창 프로시저(window procedure), 생성(creation), 업데이트 타이머(update timer) 및 파기(destruction)를 구현하는 MagnifierWindow, 및 스크린 이미지 캡처(screen image capture) 및 창 렌더링(window rendering)을 구현하는 MagnifierRenderer의 측면에서 기술될 수 있을 것이다.
MagnifierWindow 클래스는 WS_EX_LAYERED 및 WS_EX_TRANSPARENT 스타일(무엇보다도 특히)을 갖는 창을 생성한다. 시작할 때, 그것은 초기 확대기 크기 및 배율 레벨을 결정하고 MagnifierRenderer 개체를 초기화한다. 그것은 또한 타이머 개체를 생성하고, 스크린 상의 확대기의 이미지 및 위치를 업데이트하기 위해 매 타이머 틱(timer tick)마다 MagnifierRenderer 개체 상의 Update(...)방법을 호출한다. 확대기 창은 사용자가 확대기 마우스 버튼을 두번째 클릭할 때 자신을 닫으며 크기 및 확대 레벨을 저장한다. WM_CLOSE 메시지가 수신될 때 MagnifierWindow 개체와 관련한 HWND가 릴리즈된다. 창이 파기될 때 WM_QUIT이 스레드(thread)의 메시지 펌프(message pump)에 전달(post)된다. MagniferWindow에는 앞서 기술된 확대기 조절 모드가 제공될 수 있고, 지정 확대기 마우스 버튼을 눌러서 붙잡고 있음으로써 들어간다. 다음은 MagnifierWindow 클래스에 포함될 수 있는 구성 방법(constituent methods) 및 메시지 핸들러(message handler)들의 예시적 목록이다.
- Constructor: MagnifierWindow 창 클래스를 등록하고, 그 인스턴스를 생성하며, 마우스 후크 dll을 로드함.
- Destructor: MagnifierWindow와 관련한 HWND가 릴리즈되었는지 확인하고, 마우스 후크를 해제함.
- GetHWND: MagnifierWindow 클래스의 인스턴스와 관련한 HWND를 반환함(클라이언트들이 확대기를 닫기 위해 이 창에 WM_CLOSE 메시지를 보낼 수 있음).
- WM_CREATE: 가장 양호한 확대기 크기(활성화 스크린 해상도의 백분율, 또는 레지스트리 설정값으로부터) 및 확대 레벨(기본값 1.5x, 또는 레지스트리 설정값)을 결정함. MagnifierRenderer 개체를 초기화하고 업데이트들을 위해 창 타이머(window timer)를 생성함.
- WM_CLOSE: 업데이트 타이머를 파기하고, 레지스트리 설정값들을 저장하며, DestroyWindow를 호출함.
- WM_DESTROY: WM_QUIT 메시지를 스레드의 메시지 펌프에 전달함.
- WM_NCDESTROY: 클래스 멤버 변수(class member variable)들을 초기화하지 않음.
- WM_TIMER: 스크린세이버(screensaver)가 실행중이면, 확대기를 닫고, OSD(on-screen-display) 애니메이션(크기 및 배율 레벨이 조절되고 있을 때 나타나는 온스크린-디스플레이 그래픽스)을 업데이트하며, 활성 상태이면, 현재의 마우스 포인터 위치를 얻고, 확대기 이미지 및 위치를 업데이트하기 위한 MagnifierRenderer::Update(...)를 호출함.
- WM_DISPLAYCHANGE: 스크린 치수들이 변화될 때 확대기 치수들을 업데이트함.
- WM_ERASEBKGND: 연산(Operation) 없음. 이 메시지가 수신될 때, 최적화로서 제어가 Windows에 바로 반환됨.
- WM_MOUSEWHEEL: 이 메시지는 마우스 후크(활성 상태일 때))로부터만 수신되고, 확대 레벨을 변화시킴.
- WM_MOUSEMOVE: 이 메시지는 마우스 후크(활성 상태일 때))로부터만 수신되고, 확대기 창(프레임) 크기를 변화시킴.
- On Magnifier ButtonDown: 크기조정 모드에 들어가고, 마우스를 후크하며, OSD 페이드 인(fade-in)을 초기화함.
- On Magnifier ButtonUp: 크기조정 모드를 빠져나가고, 마우스 후크를 해제하며, OSD 페이드 아웃(fade-out)을 초기화하고, 확대든 또는 크기든 변경되지 않았으면, 확대기를 빠져나감.
- SetBestWindowSize: 원하는 폭 및 높이라면, 그 확대기 창이 가장 적절한 크기로 되고, 줌 인 및 아웃하는 동안 이미지 지터(image jitter)를 방지하기 위해 각각의 창 변(window edge)이 2배의 증분으로 현재의 배율을 변화시킴(즉, 배율 = 1.5에서, 창 폭이 6 픽셀 증분으로 변화됨).
- MouseHook: 마우스 후크를 콜백(callback)하고, 마우스 휠 및 마우스 이동 메시지들을 확대기 창에 전달함. 마우스 후크는 확대기의 크기 및 배율을 변경하는 동안 아래에 있는 애플리케이션들이 마우스 입력을 수신하는 것을 방지하기 위 해 이용됨.
MagnifierRenderer
MagnifierRenderer 클래스는 스크린 캡처 및 확대 렌더링 연산들을 수행한다. 그것은 창 핸들과 관련이 있고 확대 레벨이 주어진다. MagnifierRenderer에 포함될 수 있는 구성 방법들의 예시적 목록은 아래와 같다.
- Constructor: 기본값 초기화.
- AttachWindow: MagnifierRenderer 개체를 창 핸들과 관련시킨다. 확대기의 폭 및 높이는 호출시에 명시된 창의 폭 및 높이와 같음. 확대기 프레임 및 렌즈 마스크(lens mask)를 나타내는 이미지들이 이 때 발생됨. 그 폭 및 높이는 명시된 창의 폭 및 높이와 일치함. 렌더링하는 동안의 신속한 합성을 위해 이러한 두개의 이미지들이 지속됨. 이 방법은 MagnifierRenderer가 창 크기로부터 자신의 크기를 조정하기 위해 반복적으로 호출될 수 있을 것임.
- SetMagnification: 확대 레벨을 설정함. 이 방법은 확대 레벨을 변화시키기 위해 언제든 호출될 수 있을 것임.
- GetMagnification: 현재의 확대 레벨을 반환함.
- SetOSDAlpha: 확대기를 조절하기 위해 적합한 사용자 입력들을 표시하는 조절 모드 OSD(adjustment-mode on-screen- display) 그래픽의 불투명도(opacity)를 설정함.
- GetOSDAlpha: 조절 모드 OSD 그래픽의 불투명도를 획득함.
- Update: 확대기를 이동 및 업데이트함. 창 크기가 변화되면, 그것은 새로 운 프레임 및 렌즈 마스크 비트맵들을 생성함. 캡처 비트맵이 변화하지 않으면, 아무런 업데이트도 일어나지 않고, 많은 사이클의 이미지 업데이트를 저장함.
- Capture: 현재 및 과거라는 두개의 캡처 버퍼들이 제공되고, 새로운 현재의 버퍼가 캡처되며, 현재 및 과거의 버퍼들이 상이한지를 표시하는 메시지가 반환됨.
- Render: 현재의 캡처 이미지를 늘이고, 원하지 않는 픽셀들을 차폐하며, 프레임을 위에 복사함.
- CreatFrameAndMask: 현재의 창 폭 및 높이에 적절한 크기를 갖는, 렌즈 마스크, 프레임, 현재의 캡처 및 과거의 캡처 비트맵들을 생성함.
- GetBitmapSize: SIZE 구조에서의 HBITMAP의 폭 및 높이를 반환함.
- GenerateBorder: 9 컴포넌트 비트맵들을 취하고 대상 비트맵을 그것으로 채움.
- MaskBitmap: 명시된 마스크 비트맵을 이용하여 대상 비트맵의 픽셀들을 차폐함 - 대상 픽셀들이 마스크 알파 값들로 곱해짐.
- AreBitmapsDifferent: 캡처 영역이 변화되었는지를 결정하기 위해 픽셀 값들을 비교함으로써 두개의 비트맵들이 상이한지를 반환하고, 캡처 영역이 변화되지 않았으면 확대기가 최적화로서 업데이트될 필요 없음.
- Stretch_1x5: 1.5 배율로 비트맵을 늘임.
MagnifierRenderer의 예시적 프로세스들 및 기능들이 아래에서 도 7 내지 10을 참고하여 기술된다.
초기화
도 7을 보면, AttachWindow(...)가 명시된 창 핸들을 저장하고 프레임 및 렌즈 마스크를 위한 이미지들을 생성한다. 프레임 및 렌즈 마스크 이미지들은 창 폭 및 높이를 일치시킨다. 프레임은 9개의 개별적 구성요소들로 이루어진다. 중앙의 구성요소들은 요구된 크기의 프레임을 만들기 위해 늘여진다. 이러한 이미지들에서의 음영 영역들은 투명한 픽셀들을 나타냄을 알아야 한다.
이제 도 8을 보면, 프레임 이미지가 생성된 후, 렌즈 마스크 이미지가 동일한 방식으로 생성된다. 비음영 영역에 의해 표시된 마스크에서의 불투명한 픽셀들은 늘여진 이미지가 나타날 영역을 정의한다. 이러한 이미지들에서의 음영 영역들은 투명한 픽셀들을 나타냄을 알아야 한다.
MagnifierRenderer::Update(...) 방법은 소유자 창 치수들이 변화되었는지 알기 위해 확인하고, 그렇다면, 새로운 크기와 일치시키기 위해 프레임 및 렌즈 마스크 이미지들을 업데이트한다. 클라이언트들은 프레임 및 렌즈 마스크 이미지들이 명백하게 재생되게 하기 위해 AttachWindow(...)를 호출할 수 있을 것이다.
캡처
도 9A를 보면, 원본 이미지 캡처 직사각형(source image capture rectangle)이 현재의 마우스 포인터 위치에 중심을 맞춘다. 예시된 Capture Rectangle(확대 영역을 정의하는 것임)의 폭은 확대 레벨에 의해 분할된 MagnifierWindow Rectangle(확대기 프레임)의 폭이다. 마찬가지로, Capture Rectangle의 높이는 확대 레벨에 의해 분할된 MagnifierWindow Rectangle의 높이이다. 캡처 방법은 스크 린 이미지를 복사하고 캡처 이미지(captured image)가 과거의 캡처 이미지와 상이한지를 반환한다. 캡처 이미지는 렌더링하는 동안 사용하기 위해 저장된다.
렌더링
도 9B에 도시된 바와 같이, 제1 캡처 이미지가 창 크기로 늘여진다. 다음에, 늘여진 이미지가 렌즈 마스크로 차폐된다. 다음에, 프레임이 늘여진 이미지에 적용된다. 조절 모드에 들어갈 때, 배율 조절 및 프레임 크기조정 힌트 그래픽(양호하게는 투명 그래픽 이미지들이 투명 픽셀들을 나타냄)들이 프레임을 갖는 이미지에 추가된다. 힌트 그래픽들은 조절 모드가 활성 상태일 때만 나타남.
업데이트
확대기의 이미지 및 위치가 변화되었으면, ::UpdateLayeredWindow(image & position)에 대한 호출이 이루어진다. 위치만 변화되었으면, ::UpdateLayeredWindow(position)에 대한 호출이 이루어진다. 이미지만 변화되었으면, :;UpdateLayeredWindow(image)에 대한 호출이 이루어진다. 창은 Update() 기능에서의 최상단에 설정된다.
1.5x 신장 알고리즘
표준 Windows API가 비트 이미지들을 상이한 확대 레벨들에서의 확대기 프레임으로 늘이기 위해 이용될 수 있다. 본 발명의 한 실시예에서는, 1.5x의 기본값 확대 레벨이 속도를 최적화하고 확대 이미지의 외관을 개선하기 위해 상이한 알고리즘을 이용한다.
도 10A에 도시된 바와 같이, 1.5의 배율로 늘일 때, 두개의 원본 픽셀들이 대상에서의 3개의 픽셀들로 된다. 제1 원본 픽셀은 제1 대상 픽셀에 복사된다. 제2 원본 픽셀은 제3 대상 픽셀에 복사된다. 제2 대상 픽셀은 처음 두개의 원본 픽셀들의 평균으로서 설정된다.
확대기에 의해 이용되는 늘이는 알고리즘이 도 10B에 각각 도시된 바와 같이 원본 열(0, 1, 2, 3, 4,…)들을 대상 열(0, 2, 3, 5, 6,…)들로 늘인다. 도 10C에 도시된 바와 같이 대상 픽셀의 위 및 아래의 한 열로부터의 픽셀들을 평균함으로써 알고리즘이 되돌아가서 열(1, 4, 7, 등)들을 채운다.
본 발명은 그 양호한 예시적 실시예들에 비추어 기술되었다. 첨부된 특허청구범위의 범위 및 정신 내에 드는 다수의 다른 실시예, 변화예 및 변경예들이 이 명세서의 설명으로부터 당 기술분야에서의 통상의 지식을 가진 자에게 떠오를 것이다. 특허청구의 범위에서는, 명세서에서 보이는 알고리즘 변수들을 위한 라벨들의 어떤 이용이든 편리하고 명료하며 아무런 제한 효과를 의도하고 있지 않다.

Claims (23)

  1. 디스플레이 스크린 및 사용자 입력 장치를 갖는 데이터 처리 장치에 의해 실행될 때, 상기 스크린 상에 열린 창들을 포함하는 데스크탑의 선택된 부분들을 확대하기 위해 사용자에 의해 제어 가능한 디스플레이 스크린 확대기를 제공하기 위한 장치를 구성하는 작용을 하는 명령어를 포함하고, 상기 확대기는 확대 이미지가 제공되는 이동 확대기 프레임을 제공하며, 상기 이미지는 상기 확대기 프레임 아래에 있는 확대 영역 내에 배치되고 설정 확대 레벨로 확대된 스크린 콘텐츠에 대응하고, 상기 확대기는 온스크린 개체들과의 사용자 상호작용이 없고 상기 데스크탑 또는 상기 스크린 상에 열린 어떤 창들로부터든 포커스를 떼어냄이 없이 상기 확대기의 적어도 하나의 작동 파라미터를 조절하기 위해 사용자에 의해 상기 입력 장치의 이용을 통해 제어 가능한 머신 판독가능 저장 매체.
  2. 제1항에 있어서,
    상기 확대기가 온스크린 개체들과의 사용자 상호작용이 없고 상기 데스크탑 또는 상기 스크린 상에 열린 어떤 창들로부터든 포커스를 떼어냄이 없이 상기 입력 장치의 이용을 통해 활성화 및 비활성화할 수 있는 머신 판독가능 저장 매체.
  3. 제1항에 있어서,
    상기 확대기의 상기 적어도 하나의 작동 파라미터가 상기 확대기 프레임의 크기 치수를 포함하는 머신 판독가능 저장 매체.
  4. 제1항에 있어서,
    상기 적어도 하나의 작동 파라미터가 상기 확대기의 확대 레벨을 포함하는 머신 판독가능 저장 매체.
  5. 제1항에 있어서,
    상기 확대기의 조절 모드가 상기 입력 장치를 이용하여 활성화될 수 있을 것이며, 상기 조절 모드가 활성화될 때 상기 적어도 하나의 작동 파라미터를 변경하기 위해 상기 입력 장치의 입력을 상기 확대기로 임시로 보내는 후크가 설정되게 하는 머신 판독가능 저장 매체.
  6. 제5항에 있어서,
    상기 입력 장치가 컴퓨터 포인팅 장치이고, 상기 후크가 상기 컴퓨터 포인팅 장치의 후크인 머신 판독가능 저장 매체.
  7. 제6항에 있어서,
    상기 확대기의 상기 적어도 하나의 작동 파라미터를 변경하기 위해 상기 후크가 상기 컴퓨터 포인팅 장치의 포인터 이동 데이터 및 스크롤 휠 회전 데이터 중 적어도 하나를 상기 확대기로 보내는 머신 판독가능 저장 매체.
  8. 제7항에 있어서,
    상기 후크가 상기 확대기 프레임의 크기 치수를 조절하기 위해 이용되는 상기 포인터 이동 데이터를 상기 확대기로 보내는 머신 판독가능 저장 매체.
  9. 제7항에 있어서,
    상기 후크가 상기 확대기 프레임의 확대 레벨을 조절하기 위해 이용되는 상기 스크롤 휠 회전 데이터를 상기 확대기로 보내는 머신 판독가능 저장 매체.
  10. 제1항에 있어서,
    상기 입력 장치가 포인팅 장치를 포함하고, 상기 확대기 프레임의 위치 및 이동이 상기 포인팅 장치의 온스크린 커서의 위치 및 이동에 대응하는 머신 판독가능 저장 매체.
  11. 제1항에 있어서,
    상기 확대기가 활성화되는 동안에 일어나는 아래에 있는 스크린 콘텐츠에서의 변화들을 반영하기 위해 상기 확대 이미지가 동적으로 업데이트되는 머신 판독가능 저장 매체.
  12. 제2항에 있어서,
    상기 확대기가, 상기 사용자 입력 장치 상의 스위치의 작동시에 활성화되고, 상기 스위치가 예정된 시간 동안 연속으로 작동될 때 조절 모드에 들어가는 머신 판독가능 저장 매체.
  13. 제12항에 있어서,
    상기 확대기가 상기 조절 모드에 있을 때 상기 확대기는 조절 모드가 활성 상태라는 온스크린 시각적 표시기를 제공하는 머신 판독가능 저장 매체.
  14. 제13항에 있어서,
    상기 시각적 표시기가 상기 확대기의 상기 적어도 하나의 작동 파라미터의 조절을 달성하기 위해 적합한 사용자 입력들의 표시를 제공하는 머신 판독가능 저장 매체.
  15. 제14항에 있어서,
    상기 확대기 프레임의 적어도 하나의 크기 치수의 조절을 달성하기 위해 상기 시각적 표시기가 적합한 사용자 입력들의 표시를 제공하는 머신 판독가능 저장 매체.
  16. 제13항에 있어서,
    상기 확대기의 확대 비율의 조절을 달성하기 위해 상기 시각적 표시기가 적 합한 사용자 입력들의 표시를 제공하는 머신 판독가능 저장 매체.
  17. 제1항에 있어서,
    상기 디스플레이 스크린 확대기가 OS(operating system)의 API(application programming interface)의 창 스타일, 및 상기 창 스타일과 관련된 제2 스테이지 스크린 콘텐츠 합성 엔진에 의해 구성된 머신 판독가능 저장 매체.
  18. 디스플레이 스크린 및 사용자 입력 장치를 갖고, 상기 장치가 상기 스크린 상에 열린 창들을 포함하는 데스크탑의 선택된 부분들을 확대하기 위해 사용자에 의해 제어 가능한 디스플레이 스크린 확대기를 제공하도록 구성되며, 상기 확대기는 확대 이미지가 제공되는 이동 확대기 프레임을 제공하고, 상기 이미지는 상기 확대기 프레임의 아래에 있는 확대 영역 내에 배치되고 설정 확대 레벨로 확대된 스크린 콘텐츠에 대응하며, 상기 확대기는 온스크린 개체들과의 사용자 상호작용이 없고 상기 데스크탑 또는 상기 스크린 상에 열린 어떤 창들로부터든 포커스를 떼어냄이 없이 상기 확대기의 적어도 하나의 작동 파라미터를 조절하기 위해 사용자에 의해 상기 입력 장치의 이용을 통해 제어 가능한 데이터 처리 장치.
  19. 제18항에 있어서,
    상기 확대기가 온스크린 개체들과의 사용자 상호작용이 없고 상기 데스크탑 또는 상기 스크린 상에 열린 어떤 창들로부터든 포커스를 떼어냄이 없이 상기 입력 장치의 이용을 통해 활성화 및 비활성화할 수 있는 데이터 처리 장치.
  20. 제18항에 있어서,
    상기 디스플레이 스크린 확대기가 OS(operating system)의 API(application programming interface)의 창 스타일, 및 상기 창 스타일과 관련된 제2 스테이지 스크린 콘텐츠 합성 엔진에 의해 구성된 데이터 처리 장치.
  21. 디스플레이 스크린 상에 열린 창들을 포함하는 데스크탑의 선택된 부분들을 확대하기 위해 사용자에 의해 제어 가능한 디스플레이 스크린 확대기를 제공하기 위해 상기 디스플레이 스크린 및 사용자 입력 장치를 가지며, 상기 확대기는 확대 이미지가 제공되는 이동 확대기 프레임을 제공하고, 상기 이미지는 상기 확대기 프레임의 아래에 있는 확대 영역 내에 배치되고 설정 확대 레벨로 확대된 스크린 콘텐츠에 대응하며, 상기 확대기는 온스크린 개체들과의 사용자 상호작용이 없고 상기 데스크탑 또는 상기 스크린 상에 열린 어떤 창들로부터든 포커스를 떼어냄이 없이 상기 확대기의 적어도 하나의 작동 파라미터를 조절하기 위해 사용자에 의해 상기 입력 장치의 이용을 통해 제어 가능한 데이터 처리 장치를 구성하는 방법.
  22. 제21항에 있어서,
    상기 확대기가 온스크린 개체들과의 사용자 상호작용이 없고 상기 데스크탑 또는 상기 스크린 상에 열린 어떤 창들로부터든 포커스를 떼어냄이 없이 상기 입력 장치의 이용을 통해 활성화 및 비활성화할 수 있는 데이터 처리 장치 구성 방법.
  23. 제21항에 있어서,
    상기 디스플레이 스크린 확대기가 OS(operating system)의 API(application programming interface)의 창 스타일, 및 상기 창 스타일과 관련된 제2 스테이지 스크린 콘텐츠 합성 엔진에 의해 구성된 데이터 처리 장치 구성 방법.
KR1020087002958A 2005-08-04 2006-08-02 연속식 제어 기능을 갖는 가상적 확대경 KR20080040696A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/196,511 US7694234B2 (en) 2005-08-04 2005-08-04 Virtual magnifying glass with on-the fly control functionalities
US11/196,511 2005-08-04

Publications (1)

Publication Number Publication Date
KR20080040696A true KR20080040696A (ko) 2008-05-08

Family

ID=37718976

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087002958A KR20080040696A (ko) 2005-08-04 2006-08-02 연속식 제어 기능을 갖는 가상적 확대경

Country Status (12)

Country Link
US (2) US7694234B2 (ko)
EP (1) EP1910917A2 (ko)
JP (1) JP5130215B2 (ko)
KR (1) KR20080040696A (ko)
CN (1) CN101238430B (ko)
BR (1) BRPI0614901A2 (ko)
CA (1) CA2617318A1 (ko)
MX (1) MX2008001616A (ko)
NO (1) NO20080374L (ko)
RU (1) RU2409856C2 (ko)
TW (2) TW200719245A (ko)
WO (1) WO2007019193A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101586321B1 (ko) * 2015-03-11 2016-01-19 엘지전자 주식회사 디스플레이 디바이스 및 그 제어 방법

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7760187B2 (en) * 2004-07-30 2010-07-20 Apple Inc. Visual expander
US20030084087A1 (en) * 2001-10-31 2003-05-01 Microsoft Corporation Computer system with physical presence detector to optimize computer task scheduling
US7694234B2 (en) * 2005-08-04 2010-04-06 Microsoft Corporation Virtual magnifying glass with on-the fly control functionalities
US7900158B2 (en) 2005-08-04 2011-03-01 Microsoft Corporation Virtual magnifying glass with intuitive use enhancements
US7949955B2 (en) * 2005-08-04 2011-05-24 Microsoft Corporation Virtual magnifying glass system architecture
US8108785B2 (en) * 2006-01-09 2012-01-31 Microsoft Corporation Supporting user multi-tasking with clipping lists
US8312372B2 (en) * 2006-02-10 2012-11-13 Microsoft Corporation Method for confirming touch input
US7991225B2 (en) * 2006-03-03 2011-08-02 University Of Alaska Methods and systems for dynamic color equalization
US20070268317A1 (en) * 2006-05-18 2007-11-22 Dan Banay User interface system and method for selectively displaying a portion of a display screen
US7856605B2 (en) * 2006-10-26 2010-12-21 Apple Inc. Method, system, and graphical user interface for positioning an insertion marker in a touch screen display
US8570278B2 (en) * 2006-10-26 2013-10-29 Apple Inc. Portable multifunction device, method, and graphical user interface for adjusting an insertion point marker
EP2095215A2 (fr) * 2006-12-20 2009-09-02 France Telecom Systeme de selection d'elements affiches sur un ecran
US20090027421A1 (en) * 2007-07-27 2009-01-29 Franklin Servan-Schreiber Computer system with a zooming capability and method
JP2009112356A (ja) * 2007-11-02 2009-05-28 Ge Medical Systems Global Technology Co Llc 超音波診断装置
US8650507B2 (en) * 2008-03-04 2014-02-11 Apple Inc. Selecting of text using gestures
US8201109B2 (en) 2008-03-04 2012-06-12 Apple Inc. Methods and graphical user interfaces for editing on a portable multifunction device
US20090241059A1 (en) * 2008-03-20 2009-09-24 Scott David Moore Event driven smooth panning in a computer accessibility application
US20090254853A1 (en) * 2008-04-03 2009-10-08 Donald Jacob Method of viewing a single document in multiple scaled views
JP4661909B2 (ja) * 2008-06-04 2011-03-30 富士ゼロックス株式会社 情報表示装置及びプログラム
JP2010044628A (ja) * 2008-08-13 2010-02-25 Access Co Ltd コンテンツ表示倍率変更方法、およびコンテンツ表示倍率変更プログラム
US20100077304A1 (en) * 2008-09-19 2010-03-25 Microsoft Corporation Virtual Magnification with Interactive Panning
US8887061B2 (en) * 2008-09-26 2014-11-11 Microsoft Corporation Variable screen magnifier user interface
US9395867B2 (en) 2008-10-08 2016-07-19 Blackberry Limited Method and system for displaying an image on an electronic device
JP5470861B2 (ja) * 2009-01-09 2014-04-16 ソニー株式会社 表示装置及び表示方法
US9846533B2 (en) * 2009-03-16 2017-12-19 Apple Inc. Methods and graphical user interfaces for editing on a multifunction device with a touch screen display
US20100287493A1 (en) * 2009-05-06 2010-11-11 Cadence Design Systems, Inc. Method and system for viewing and editing an image in a magnified view
US20120266069A1 (en) * 2009-12-28 2012-10-18 Hillcrest Laboratories, Inc. TV Internet Browser
US20110173564A1 (en) * 2010-01-13 2011-07-14 Microsoft Corporation Extending view functionality of application
US20110197156A1 (en) * 2010-02-09 2011-08-11 Dynavox Systems, Llc System and method of providing an interactive zoom frame interface
US9804727B2 (en) 2010-03-09 2017-10-31 Freedom Scientific, Inc. Flexible display of visual content on multiple display devices
CN102214060A (zh) * 2010-04-12 2011-10-12 宏碁股份有限公司 触控式电子装置及其窗口操控方法
US20110261081A1 (en) * 2010-04-23 2011-10-27 Weinblatt Lee S Testing of Internet Ads
US8856682B2 (en) * 2010-05-11 2014-10-07 AI Squared Displaying a user interface in a dedicated display area
US9401099B2 (en) 2010-05-11 2016-07-26 AI Squared Dedicated on-screen closed caption display
CN102279772B (zh) * 2010-06-11 2014-10-15 宏达国际电子股份有限公司 软件对象的动态互动方法与电子装置
US8473861B2 (en) * 2010-06-17 2013-06-25 Freedom Scientific, Inc. System wide text viewer
US8667054B2 (en) 2010-07-12 2014-03-04 Opus Medicus, Inc. Systems and methods for networked, in-context, composed, high resolution image viewing
US8296359B2 (en) 2010-07-12 2012-10-23 Opus Medicus, Inc. Systems and methods for networked, in-context, high resolution image viewing
US8804186B2 (en) * 2010-07-13 2014-08-12 Tracer Imaging Llc Automated lenticular photographic system
US9024977B2 (en) 2010-08-02 2015-05-05 International Business Machines Corporation Resizing objects in regions of virtual universes
US8522158B2 (en) 2010-10-19 2013-08-27 Apple Inc. Systems, methods, and computer-readable media for providing a dynamic loupe for displayed information
US20120124514A1 (en) * 2010-11-11 2012-05-17 Microsoft Corporation Presentation focus and tagging
KR101175481B1 (ko) * 2010-11-18 2012-08-20 삼성메디슨 주식회사 확대 영상을 제공하는 초음파 시스템 및 방법
US20120159395A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Application-launching interface for multiple modes
US8689123B2 (en) 2010-12-23 2014-04-01 Microsoft Corporation Application reporting in an application-selectable user interface
US8612874B2 (en) 2010-12-23 2013-12-17 Microsoft Corporation Presenting an application change through a tile
WO2012083563A1 (zh) * 2010-12-24 2012-06-28 天津九安医疗电子股份有限公司 一种血压测量系统
EP2661662A4 (en) * 2011-01-03 2017-06-21 Freedom Scientific, Inc. View locking multi-monitor screen magnifier
DE202011001805U1 (de) 2011-01-22 2011-04-28 Jakob, Gerhard Vergrößerungsglas mit Klemmhalter für mobile Navigationsgeräte
US9104440B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US9158445B2 (en) 2011-05-27 2015-10-13 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US8719695B2 (en) 2011-05-31 2014-05-06 Apple Inc. Devices, methods, and graphical user interfaces for document manipulation
WO2013009413A1 (en) 2011-06-06 2013-01-17 Intellitact Llc Relative touch user interface enhancements
CN102393952A (zh) * 2011-07-01 2012-03-28 深圳市斯尔顿科技有限公司 一种图像放大测量方法及装置
KR101834987B1 (ko) * 2011-08-08 2018-03-06 삼성전자주식회사 휴대용 단말기에서 화면 캡쳐를 위한 장치 및 방법
US20130057587A1 (en) 2011-09-01 2013-03-07 Microsoft Corporation Arranging tiles
US9146670B2 (en) 2011-09-10 2015-09-29 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
CN102521020B (zh) * 2011-10-26 2014-05-21 华为终端有限公司 用于移动终端的应用屏幕截图方法和装置
US9678647B2 (en) * 2012-02-28 2017-06-13 Oracle International Corporation Tooltip feedback for zoom using scroll wheel
US9435801B2 (en) * 2012-05-18 2016-09-06 Blackberry Limited Systems and methods to manage zooming
CN103455234A (zh) * 2012-06-01 2013-12-18 腾讯科技(深圳)有限公司 显示应用程序界面的方法及装置
RU2509377C2 (ru) * 2012-06-05 2014-03-10 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ и система и для просмотра изображения на устройстве отображения
DE202012011321U1 (de) 2012-06-21 2013-02-19 Gerhard Jacob Alarmanlage gegen Taschendiebe
JP6035931B2 (ja) 2012-07-13 2016-11-30 ソニー株式会社 情報処理装置、情報処理方法、および情報処理プログラム
US9430456B2 (en) * 2012-08-10 2016-08-30 Transaxy Inc. System for entering data into a data processing system
JP2014038560A (ja) * 2012-08-20 2014-02-27 Canon Inc 情報処理装置、情報処理方法及びプログラム
TWI462013B (zh) * 2012-12-10 2014-11-21 Dexin Corp 輸入裝置及其執行顯示畫面放大之方法
KR101416749B1 (ko) * 2012-12-13 2014-07-08 주식회사 케이티 Tv 재생 장치 및 방법
CN103885575B (zh) * 2012-12-19 2017-04-12 宝德科技股份有限公司 输入装置及以输入装置执行显示画面放大的方法
AU350153S (en) * 2013-01-09 2013-08-13 Samsung Electronics Co Ltd Display screen for an electronic device
JP6131072B2 (ja) * 2013-03-14 2017-05-17 シャープ株式会社 表示制御装置
WO2014152581A1 (en) * 2013-03-14 2014-09-25 Huawei Technologies Co., Ltd. Virtual magnifying lens touch graphic effect for mobile devices
DE202013004567U1 (de) 2013-05-16 2013-07-05 Gerhard Jacob Alarmanlage mit Smartphone, durch App und Empfänger gegen Taschendiebe
JP6606749B2 (ja) * 2013-08-09 2019-11-20 武蔵エンジニアリング株式会社 焦点調節方法およびその装置
US10108317B2 (en) * 2013-10-14 2018-10-23 Schneider Electric Software, Llc Configuring process simulation data for semantic zooming
CN104731492B (zh) * 2013-12-19 2018-07-24 鸿合科技股份有限公司 一种魔术笔及其显示控制方法
CN104731396B (zh) * 2013-12-19 2018-03-02 鸿合科技有限公司 一种魔术笔及其显示控制方法
KR20150105140A (ko) * 2014-03-07 2015-09-16 삼성전자주식회사 휴대 단말기 및 컨텐츠 확대 표시 방법
CN103942001B (zh) * 2014-05-12 2017-02-15 上海卓悠网络科技有限公司 一种移动终端的自由截屏方法和移动终端
US9658713B2 (en) * 2014-09-22 2017-05-23 Intel Corporation Systems, methods, and applications for dynamic input mode selection based on whether an identified operating system includes an application program interface associated with the input mode
TWI583971B (zh) * 2015-01-16 2017-05-21 旺矽科技股份有限公司 檢測設備之操作方法
US20160334974A1 (en) * 2015-05-14 2016-11-17 Gilad GRAY Generating graphical representations of data using multiple rendering conventions
US10275436B2 (en) * 2015-06-01 2019-04-30 Apple Inc. Zoom enhancements to facilitate the use of touch screen devices
CN106604146A (zh) * 2015-10-20 2017-04-26 中兴通讯股份有限公司 机顶盒显示界面放大的方法和装置
JP7006184B2 (ja) * 2017-11-27 2022-01-24 富士通株式会社 制御プログラム、制御方法および制御装置
US11157130B2 (en) * 2018-02-26 2021-10-26 Adobe Inc. Cursor-based resizing for copied image portions
USD871432S1 (en) 2018-04-12 2019-12-31 Reliance Worldwide Corporation Display screen or portion thereof with graphical user interface
USD871431S1 (en) 2018-04-12 2019-12-31 Reliance Worldwide Corporation Display screen or portion thereof with graphical user interface
USD857053S1 (en) 2018-04-12 2019-08-20 Reliance Worldwide Corporation Display screen or portion thereof with animated graphical user interface
USD875777S1 (en) 2018-05-25 2020-02-18 Apple Inc. Electronic device with animated graphical user interface
JP2018190469A (ja) * 2018-08-22 2018-11-29 キヤノン株式会社 画像形成装置、コンピュータプログラムおよび記録媒体
CN110874172B (zh) * 2018-08-31 2022-09-30 北京京东尚科信息技术有限公司 放大app界面的方法、装置、介质及电子设备
USD910709S1 (en) 2018-10-26 2021-02-16 Reliance Worldwide Corporation Display screen or portion thereof with graphical user interface
CN110032326A (zh) * 2019-03-29 2019-07-19 网易(杭州)网络有限公司 移动终端显示画面的控制方法、装置、设备和存储介质
CN110096324B (zh) * 2019-04-22 2022-11-25 四川易简天下科技股份有限公司 一种基于windows系统的自动过滤自身窗口的高效抓屏方法
US11379113B2 (en) 2019-06-01 2022-07-05 Apple Inc. Techniques for selecting text
CA3087909A1 (en) * 2019-07-24 2021-01-24 Arris Enterprises Llc Magnification enhancement of video for visually impaired viewers
CN114616590A (zh) * 2019-09-09 2022-06-10 佩治人工智能公司 用于为数字病理学处理载玻片图像的系统和方法
WO2023060414A1 (en) * 2021-10-12 2023-04-20 Citrix Systems, Inc. Adjustable magnifier for virtual desktop

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03292524A (ja) * 1990-04-11 1991-12-24 Oki Electric Ind Co Ltd カーソル移動方式
JPH04142661A (ja) * 1990-10-04 1992-05-15 Toshiba Corp 情報処理装置
US5375199A (en) * 1991-06-04 1994-12-20 Digital Equipment Corporation System monitoring method and device including a graphical user interface to view and manipulate system information
JP3597543B2 (ja) * 1992-10-16 2004-12-08 富士写真フイルム株式会社 カーソル制御方法および装置
DE69315969T2 (de) * 1992-12-15 1998-07-30 Sun Microsystems Inc Darstellung von Informationen in einem Anzeigesystem mit transparenten Fenstern
CA2140164A1 (en) * 1994-01-27 1995-07-28 Kenneth R. Robertson System and method for computer cursor control
US5808604A (en) * 1994-03-10 1998-09-15 Microsoft Corporation Apparatus and method for automatically positioning a cursor on a control
JP2776246B2 (ja) * 1994-05-31 1998-07-16 日本電気株式会社 マウスカーソル追従型拡大表示の移動装置
JP3890621B2 (ja) * 1995-04-21 2007-03-07 ソニー株式会社 画像表示装置及び方法
US5808601A (en) * 1995-09-12 1998-09-15 International Business Machines Corporation Interactive object selection pointer method and apparatus
US5754348A (en) * 1996-05-14 1998-05-19 Planetweb, Inc. Method for context-preserving magnification of digital image regions
US6128006A (en) * 1998-03-26 2000-10-03 Immersion Corporation Force feedback mouse wheel and other control wheels
JP2000221874A (ja) * 1999-01-29 2000-08-11 Hitachi Eng Co Ltd 地図表示装置
US7197718B1 (en) * 1999-10-18 2007-03-27 Sharp Laboratories Of America, Inc. Interactive virtual area browser for selecting and rescaling graphical representations of displayed data
JP3345600B2 (ja) * 2000-04-10 2002-11-18 コナミ株式会社 ゲームシステムおよびコンピュータ読取可能な記憶媒体
US7450114B2 (en) * 2000-04-14 2008-11-11 Picsel (Research) Limited User interface systems and methods for manipulating and viewing digital documents
US6704034B1 (en) * 2000-09-28 2004-03-09 International Business Machines Corporation Method and apparatus for providing accessibility through a context sensitive magnifying glass
JP2003050653A (ja) * 2001-07-18 2003-02-21 Internatl Business Mach Corp <Ibm> 入力イベントの発生方法及びその方法を備える情報端末
US8117565B2 (en) * 2001-10-18 2012-02-14 Viaclix, Inc. Digital image magnification for internet appliance
CA2370751A1 (en) * 2002-02-05 2003-08-05 Garth B.D. Shoemaker Fast and accurate rendering of pliable display technology distortions using pre-calculated texel coverages
JP2003287424A (ja) * 2002-03-28 2003-10-10 Mitsubishi Electric Corp ナビゲーション装置および地図情報表示方法
US20030210262A1 (en) * 2002-05-10 2003-11-13 Tripath Imaging, Inc. Video microscopy system and multi-view virtual slide viewer capable of simultaneously acquiring and displaying various digital views of an area of interest located on a microscopic slide
US7009600B2 (en) * 2002-09-19 2006-03-07 International Business Machines Corporation Data processing system display screen including an image alteration area
JP4266158B2 (ja) * 2003-11-28 2009-05-20 株式会社東芝 情報処理装置および表示制御方法
US7429993B2 (en) * 2004-09-17 2008-09-30 Microsoft Corporation Method and system for presenting functionally-transparent, unobtrusive on-screen windows
US7694234B2 (en) * 2005-08-04 2010-04-06 Microsoft Corporation Virtual magnifying glass with on-the fly control functionalities
US7949955B2 (en) * 2005-08-04 2011-05-24 Microsoft Corporation Virtual magnifying glass system architecture
US7900158B2 (en) * 2005-08-04 2011-03-01 Microsoft Corporation Virtual magnifying glass with intuitive use enhancements

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101586321B1 (ko) * 2015-03-11 2016-01-19 엘지전자 주식회사 디스플레이 디바이스 및 그 제어 방법
WO2016143965A1 (en) * 2015-03-11 2016-09-15 Lg Electronics Inc. Display device and controlling method thereof
US9554084B2 (en) 2015-03-11 2017-01-24 Lg Electronics Inc. Display device and controlling method thereof

Also Published As

Publication number Publication date
CN101238430A (zh) 2008-08-06
MX2008001616A (es) 2008-02-19
BRPI0614901A2 (pt) 2011-04-19
CA2617318A1 (en) 2007-02-15
US20100235736A1 (en) 2010-09-16
US7694234B2 (en) 2010-04-06
US20070033544A1 (en) 2007-02-08
WO2007019193A3 (en) 2008-01-03
EP1910917A2 (en) 2008-04-16
RU2008104025A (ru) 2009-08-10
JP2009503742A (ja) 2009-01-29
JP5130215B2 (ja) 2013-01-30
WO2007019193A2 (en) 2007-02-15
TW201337784A (zh) 2013-09-16
CN101238430B (zh) 2010-06-16
RU2409856C2 (ru) 2011-01-20
NO20080374L (no) 2008-02-27
TW200719245A (en) 2007-05-16

Similar Documents

Publication Publication Date Title
US7694234B2 (en) Virtual magnifying glass with on-the fly control functionalities
US7949955B2 (en) Virtual magnifying glass system architecture
US7712046B2 (en) Virtual magnifying glass with intuitive use enhancements
JP2759700B2 (ja) イメージ・エディタを作動する方法
US7274377B2 (en) Viewport panning feedback system
US5815151A (en) Graphical user interface
US6008809A (en) Apparatus and method for viewing multiple windows within a dynamic window
US6023275A (en) System and method for resizing an input position indicator for a user interface of a computer system
US5655094A (en) Pop up scroll bar
US20070268317A1 (en) User interface system and method for selectively displaying a portion of a display screen
US5956032A (en) Signalling a user attempt to resize a window beyond its limit
US20060082901A1 (en) Interacting with detail-in-context presentations
US20100083192A1 (en) Variable screen magnifier user interface
US6396487B1 (en) User interface enhancement for windows-based operating systems
JPH08263248A (ja) メニュー項目の表示の視覚的強調方法
US20070296738A1 (en) Manipulating desktop backgrounds
KR19990087910A (ko) 관련되지않은윈도들간의연합상호작용
US6664990B1 (en) Computer display pointer with alternate hot spots
US7212210B2 (en) Method and apparatus for enlarging an output display on a display
Agarwal et al. WidgetLens: A system for adaptive content magnification of widgets

Legal Events

Date Code Title Description
A201 Request for examination
SUBM Surrender of laid-open application requested