KR100486180B1 - 컴퓨터에서 화면을 부분적으로 확대하는 방법 및 그기록매체 - Google Patents
컴퓨터에서 화면을 부분적으로 확대하는 방법 및 그기록매체 Download PDFInfo
- Publication number
- KR100486180B1 KR100486180B1 KR10-2002-0019176A KR20020019176A KR100486180B1 KR 100486180 B1 KR100486180 B1 KR 100486180B1 KR 20020019176 A KR20020019176 A KR 20020019176A KR 100486180 B1 KR100486180 B1 KR 100486180B1
- Authority
- KR
- South Korea
- Prior art keywords
- screen
- overlay
- buffer
- tracker
- enlarged
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/37—Details of the operation on graphic patterns
- G09G5/373—Details of the operation on graphic patterns for modifying the size of the graphic pattern
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction 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
- G06F3/04812—Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/37—Details of the operation on graphic patterns
- G09G5/377—Details of the operation on graphic patterns for mixing or overlaying two or more graphic patterns
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/12—Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
본 발명은 컴퓨터에서 모니터를 통해 출력되는 화면의 일정 부분을 확대하는 방법에 관한 것으로, 메모리에 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)를 설정하는 단계; 현재 모니터를 통해 나타나는 화면에서 추적자의 좌표값을 상기 컴퓨터의 운영 시스템으로부터 산출하는 단계; 상기 좌표값에 따라 화면의 일정 부분을 상기 운영 시스템의 프라이머리 서피스(primary surface)에 기록된 화면을 근거로 이 화면을 부분적으로 확대해서 상기 스크린 버퍼에 복사하는 단계; 상기 스크린 버퍼에서 부분적으로 확대된 화면을 상기 오버레이 백버퍼에 1:1의 화면 크기로 복사하는 단계; 그리고 상기 오버레이 백버퍼로부터 상기 오버레이 서피스에 확대된 화면을 플립(flip)함으로써 화면을 확대해서 출력하는 단계;를 포함하고, 상기 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)는 컴퓨터의 이미지 인터페이스에 의해서 설정되는 것을 특징으로 한다.
Description
본 발명은 컴퓨터에서 화면을 부분적으로 확대하는 방법에 관한 것으로서, 더욱 상세하게는 저시력자들을 위해 컴퓨터에서 다이렉트 엑스(Direct X)와 같은 이미지 인터페이스를 제공하는 모듈을 이용함으로써 시스템에 부담을 주지 않으면서도 안정적으로 실제 화면에서 보여지는 화면의 일부분을 확대하는 방법에 관한 것이다.
우리나라에는 선진국의 저시력(low vision) 출현비율과 비교할 때 약 40만 정도의 저시력 장애인이 있는 것으로 추정된다. 저시력의 환경은 일상생활, 사회생활, 경제활동 등에서 상당한 제약을 받으며, 특히 고용과 관련한 경제적 손실이 매우 큰 것으로 나타나고 있다.
미국은 신경제, 즉 디지털 경제로 90년 후반까지 그칠 줄 모르는 경기 호황을 누렸으며, 우리나라도 정보 산업(Information Technology)에 주력하면서 정보통신단말기, 컴퓨터, 인터넷 등에 대한 사회 전반적 기반구축 및 인프라를 확충하는 데 심혈을 기울여 왔다. 그러나, 지식·정보화 사회로 가면 갈수록 정보에 대해 소외되는 계층은 경제적, 사회적, 문화적으로 더욱 더 빈곤해지는 것은 자명한 일이라고 하겠다.
한편, 우리는 통상적으로 약시(Amblyopia)와 저시력(Low vision)을 혼용하여 사용하고 있는데 약시는 저시력의 한 부분에 속한다고 할 수 있다. 최근에 들어와서 학계 및 의료계에서는 저시력이란 용어를 약시와 분리하여 사용하고 있다. 서구에서는 1970년대부터 저시력에 대해 관심을 가지기 시작했으며, 맹인과 차별화된 다양한 저시력 재활 서비스를 실시하고 있다. 우리나라에서 저시력에 관심을 가진 것은 불과 얼마되지 않으며, 특히 특수교육 분야에서 저시력 아동 및 학생들의 학습 효율을 높이기 위한 관련 연구들이 이루어지고 있으나 저시력 클리닉, 저시력 재활서비스, 정보접근과 같은 관련 제반 서비스 재원은 선진국과 비교할 때 매우 열악한 상황이다.
우리나라 맹학교 재학생의 70∼80%가 활용 시력을 가지고 있으며, 2000년 근로장애인 실태조사에 따르면 일반 민간사업체에 고용되어있는 시각장애인의 90% 이상이 잔존 시력을 보유하고 있는 것으로 나타났다. 미국의 경우 저시력 인구는 전체 인구의 5%에 해당하는 1,400만명으로 추정하고 있으며, 전세계적으로는 135백만명 정도로 추산하고 있다(The Lighthouse, 1994). 우리나라는 정확한 통계수치는 없으나 선진국의 출현 비율과 비교할 때 40만명 정도로 추정할 수 있고 사회가 점차 산업화, 고령화되면서 그 수는 점차 증가할 것으로 예상된다(미영순, 2000).
저시력인들은 일상생활활동, 여가생활(독서, 영화감상, 여행, 스포츠 등), 경제 활동 등에 대한 제한으로 인하여 그들의 삶의 질이 신체적, 경제적, 심리적으로 하향되는 변화를 경험하게 된다. 1994년 Lighthouse의 조사연구에 따르면 저시력의 결과로써 야기되는 문제로 고용과 관련된 수입의 손실이 가장 큰 것으로 나타나 저시력인의 고용이 매우 어렵다는 것을 잘 알 수 있다(The Lighthouse, 1994).
저시력인들이 생활에서 가장 불편한 것 중에 하나가 문자를 읽거나 보는 데 대한 어려움이 있는데, 이를 위한 보조도구는 조명기구, 큰문자 인쇄물, 비전자식 확대보조도구, CCTV(close-circuit television), 카세트 녹음기, 전자독서장치, 화면확대프로그램, 음성출력시스템 등이 있다.
또한, 오늘날 저시력인들의 읽고 쓰는 것을 지원하기 위해 컴퓨터가 사용되고 있다. 예를 들면 대형모니터, 큰 글자 폰트, 스캐닝 시스템 및 음성출력 등이 이것에 해당한다. 저시력인을 위한 컴퓨터 활용 시스템 중 가장 대표적인 것의 하나가 화면확대프로그램이라고 할 수 있는데 이것은 다양한 배율과 사용자 인터페이스를 지원하여 컴퓨터를 원활하게 사용할 수 있게 한다. 또한, 컴퓨터 모니터를 지속적으로 보는데 대한 부담을 줄이기 위해 음성출력시스템을 부가한 화면확대시스템을 사용할 수도 있다(Beaver and Mann, 1995).
그러나, 국내에는 저시력인들의 컴퓨터 접근을 위한 화면확대프로그램은 개발되어 있지 않으며, 저시력인들은 외국의 프리웨어나 셰어웨어 S/W를 사용하거나 70만원 이상대의 고가 상용 제품을 구입해서 사용해야 할 실정이다.
기존 시각장애인을 위한 정보통신 기기나 소프트웨어 개발은 전맹을 위한 음성출력 S/W가 그 주류를 이룬게 사실이다. 국내 시각장애인용 S/W는 1990년부터 개발이 시작되었으며 DOS를 기반으로 한 음성프로그램이 대부분이었으나 1990년대 후반부터는 보건복지부나 정보통신부 등의 자금제공에 의한 음성합성 기반의 스크린리더 개발이 활발히 이루어져 시각장애인들의 GUI 환경 접근에 활기를 띠기 시작했다.
현재 일반 경쟁 노동시장에 고용되어 있는 시각장애인들은 경증의 저시력이 많으며 구직자와 학령기에 있는 많은 학생들이 잔존시력을 보유하고 있는 점을 감안할 때 저시력인들을 위한 화면확대 소프트웨어의 개발은 이들의 컴퓨터나 인터넷 접근성을 높이는 데 크게 기여할 수 있을 것으로 기대된다. 따라서 저시력장애인용 화면확대프로그램의 개발은 저시력인들의 정보에 대한 접근성을 용이하게 하여 정보격차를 해소하고 나아가서는 시각장애인의 새로운 직업개발 및 고용활성화에 기여할 것으로 예상된다.
최근 우리나라도 저소득자, 농어촌지역 주민, 장애인, 노령자 , 여성 등 경제적, 지역적, 신체적 또는 사회적 여건으로 인하여 생활에 필요한 정보통신서비스에 접근하거나 이용하기 어려운 자에 대하여 정보통신망에 대한 자유로운 접근과 정보이용을 보장하기 위해 『정보격차해소에 관한 법률』을 제정하였다.
한편, 저시력인에게는 그들의 잔존시력을 최대한 활용할 수 있는 시환경에 대한 배려가 무엇보다 중요하다. 강영우(1993)는 저시력 학생의 시환경 결정 요인으로 광도, 대비, 시간, 거리, 상의 크기, 광학기구 등을 들고 있고, 김승국(1994)은 시기능 극대화 요인으로 조도, 상의 크기, 시간, 거리 대비, 광학기재, 휘광, 이동 등을 들고 있으며, 한명복(1987)은 저시력 학생의 시각적 특성에 알맞은 조명 방식과 조도 수준, 활자의 크기, 독서 거리 및 칠판에서의 거리, 책상 면의 기울기 등이 밝혀진다면 저시력 학생들이 읽거나 쓰기를 보다 효율적으로 수행하는데 도움을 준다고 하였다.
따라서 화면확대프로그램 개발에 있어서 밝기(brightness), 눈부심과 대비, 크기, 시간(time), 거리(distance) 등의 시환경을 고려해야 하는 것은 매우 중요한 부분이라고 할 수 있다.
국내 시각장애인용 소프트웨어 개발의 시초는 김운영이 개발한 KOY Program으로 Apple 및 그 호환 기종에서 문서 입력, 편집, 읽기 기능 그리고 입력된 내용을 점역할 수 있는 점역 기능 등을 갖고 있었다. 그러나 IBM XT 호환 기종이 보급되면서 Apple 컴퓨터에서 실행이 가능했던 KOY Program은 실용화되지는 못 했다.
Folk 박사와 킬 페트릭이 개발한 "한글 BEX"는 Apple 및 그 호환기종에서 운영이 가능하고 한글 점역, 음성출력, 모니터 확대 출력 등이 가능했으나 프로그램의 잦은 다운으로 인하여 실용화되지 못하였다. 국내에서 음성 출력 프로그램으로 실용화된 것은 FELIX 신부가 개발한 "말하는 글"이다.
1992년 (주)디지콤에서 개발한 음성출력장치인 '가라사대'가 보급되면서 시각장애인용 프로그램 개발이 활기를 띠기 시작하였다. '가라사대'와 함께 제공된 음성출력 프로그램인 Malbud은 화면 전체 읽어주기와 커서가 위치한 줄을 읽어 주는 기능 등 제한된 기능만을 갖고 있어 시각장애인용으로 사용하기에는 한계가 있었다.
하상재활공학센타에서는 '가라사대'를 이용한 음성출력 프로그램인 SN(Sorinoon)을 개발하여 보급하였다. 이 프로그램은 1993년 버전 2.0으로 버전업 되었다. '가라사대'를 이용한 SN은 여러 가지 유용한 점이 많았지만 급변하는 컴퓨터 환경을 제대로 충족시키기에는 약간 미진하였다.
이에 시각장애인 프로그래머인 송오용이 DOS용 스크린리더인 SRD를 개발하였고. 이 프로그램은 개인이 개발한 것을 한국시각장애인복지연합회가 판권을 인도 받아 보급하였으며 아직도 많은 시각장애인들이 SRD를 사용하고 있다(서인환, 1997)
국내에서는 1996년도에 삼성, LG, (주)디지콤, 거원시스템 등에서 TTS(Text To Speech) 관련 제품을 선보였다. 그 이후 충북대학교에서 음성웹브라우져인 웹아이를 개발하였고, 한국시각장애인복지연합회에서 TTS(LG 4.0)를 이용한 소리눈98을 개발하였다. TTS를 기반으로 한 개발은 2000년에 접어들면서 정부 및 맹인 기관등의 출연에 의해 드림보이스, 아이즈2000, 소리눈2000 등의 시각장애인용 스크린리더를 개발·보급하였다. 지난 10년간의 시각장애인 S/W 개발사를 보면 대부분이 스크린리더, 점자번역, 통신, 웹브라우져, 유틸리티 등 음성출력이나 점자를 기반으로 한 프로그램들로서 맹인을 그 사용 대상으로 한 것임을 잘 알 수 있다. 아직 제외국의 시각장애인용 S/W와 비교할 때 국내의 시각장애인 인터페이스 개발은 미약한 수준이지만 그래도 어느 정도 괄목한 성장을 했다고 볼 수 있다. 저시력 장애인을 위한 소프트웨어의 가장 대표적인 것은 화면확대 S/W인데 국내에는 아직 뚜렷한 개발품이 없는 실정으로 국내 저시력 장애인들은 인터넷을 통하여 외국의 프리웨어나 셰어웨어 제품을 이용하거나 고가의 상용 제품을 수입해서 사용해야 하는 실정이다.
본 발명은 상기와 같이 저시력자들이 겪는 어려운 점들을 해결하기 위해 창안된 것으로서, 컴퓨터의 모니터에서 보여지는 화면을 컴퓨터에 로드가 걸리지 않도록 하기 위해서 드라이버를 사용하지 않고, 운영시스템 또는 부가적으로 컴퓨터에 설치되는 이미지 인터페이스를 통해서 구현함으로써 종래의 것들보다 구현하기가 용이한 본 발명을 제공하고자 한다. 나아가, 본 발명은 장애자들, 특히 저시력자의 정보 접근성을 높이기 위해서 공익적인 측면에서 개발된 본 발명을 저시력자들 누구나가 쉽게 구하여 사용할 수 있도록 하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명에 따른 컴퓨터에서 화면을 부분적으로 확대하는 방법은, 컴퓨터에서 모니터를 통해 출력되는 화면의 일정 부분을 확대하는 방법에 관한 것으로, 메모리에 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)를 설정하는 단계; 현재 모니터를 통해 나타나는 화면에서 추적자의 좌표값을 상기 컴퓨터의 운영 시스템으로부터 산출하는 단계; 상기 좌표값에 따라 화면의 일정 부분을 상기 운영 시스템의 프라이머리 서피스(primary surface)에 기록된 화면을 근거로 이 화면을 부분적으로 확대해서 상기 스크린 버퍼에 복사하는 단계; 상기 스크린 버퍼에서 부분적으로 확대된 화면을 상기 오버레이 백버퍼에 1:1의 화면 크기로 복사하는 단계; 그리고 상기 오버레이 백버퍼로부터 상기 오버레이 서피스에 확대된 화면을 플립(flip)함으로써 화면을 확대해서 출력하는 단계;를 포함하고, 상기 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)는 컴퓨터의 이미지 인터페이스에 의해서 설정된다.
바람직하게, 본 발명은 상기 좌표값을 기준으로 해서 설정된 화면의 확대 배율과 설정된 오버레이 서피스의 크기를 근거로 가로×세로의 확대 크기를 변화시키면서 산출하는 단계;를 더 포함한다.
바람직하게, 본 발명은 상기 스크린 버퍼와 연결되는 디씨(Device Context) 메모리를 시스템 메모리에 설정하는 단계; 상기 스크린 버퍼에 기록된 확대된 화면을 상기 디씨 메모리에 복사하는 단계; 설정된 색깔에 따라서 상기 확대된 화면의 색깔을 보정하는 단계; 그리고 보정된 화면을 상기 스크린 버퍼에 입력하는 단계를 더 포함한다.
본 발명의 다른 태양에서, 컴퓨터에서 모니터를 통해 출력되는 화면의 일정 부분을 확대하는 프로그램이 기록된 매체에 관한 것으로, 메모리에 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)를 설정하는 단계; 현재 모니터를 통해 나타나는 화면에서 추적자의 좌표값을 상기 컴퓨터의 운영 시스템으로부터 산출하는 단계; 상기 좌표값에 따라 화면의 일정 부분을 상기 운영 시스템의 프라이머리 서피스(primary surface)에 기록된 화면을 근거로 이 화면을 부분적으로 확대해서 상기 스크린 버퍼에 복사하는 단계; 상기 스크린 버퍼에서 부분적으로 확대된 화면을 상기 오버레이 백버퍼에 1:1의 화면 크기로 복사하는 단계; 그리고 상기 오버레이 백버퍼로부터 상기 오버레이 서피스에 확대된 화면을 플립(flip)함으로써 화면을 확대해서 출력하는 단계;를 포함하고, 상기 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)는 컴퓨터의 이미지 인터페이스에 의해서 설정되는 것을 특징으로 하는 프로그램이 기록된 매체 및 이 프로그램에 의해서 구동되는 장치가 제공된다.
이하 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다
도 1 내지 도 6을 가지고 본 발명의 방법을 설명한다. 본 발명의 바람직한 실시예에서, 본 발명은 운영 시스템의 일부, 또는 추가로 컴퓨터에 설치되는 이미지 인터페이스를 사용하여 모니터를 통해 현재 출력되는 실제 화면을 부분적으로 확대해서 출력한다. 따라서 시력이 약한 저시력자는 쉽게 화면에 표시된 것들을 알 수가 있다.
도 1에서, 본 발명에 따른 컴퓨터의 기능적 구성이 도시되어 있다. 본 발명의 장치는 중앙연산장치(CPU)(110), 운영시스템(120), 그래픽 카드(130), 화면연산부(140), 설정부(150), 산출부(160), 처리부(170), 계산부(180) 및 시스템 메모리(190)를 포함한다.
컴퓨터(100)는 정보처리나 데이터 베이스 탐색에 있어 엄청난 양의 수학적 계산을 실행함으로써 대량의 업무처리를 할 수 있다. 주로, intel사에서 생산되는 펜티엄4 1.4GHz의 마이크로프로세서가 중앙연산장치(110)로 사용될 수 있다. 유사하게, advanced micro devices사에서 생산되는 athlon xp 1.6GHz의 마이크로프로세서가 사용될 수 있다. 이 프로세서들은 32비트(bit)구조를 구현한다. 본 발명에서, 이 중앙연산장치(110)는 펜티엄 266MHz 이상의 처리속도를 보이는 것이 바람직하게 이용된다.
또한, 이 컴퓨터(100)는 보편적으로 사용되는 마이크로소프트사의 windows 시리즈 또는 linux 등과 같이 컴퓨터를 구성하고 있는 하드웨어 장치와 일반 컴퓨터 사용자 또는 컴퓨터에서 실행되는 응용 프로그램의 중간에 위치하여 사용자들이 보다 쉽고 간편하게 컴퓨터 시스템을 이용할 수 있도록 컴퓨터를 제어하고 관리하는 운영시스템(120)을 포함한다. 이 운영시스템(120)은 사용자가 자원에 보다 쉽게 접근할 수 있도록 GUI(Graphical User Interface)를 제공하기도 한다.
컴퓨터(100)에서 화면의 처리를 위해서 수반되는 장치가 그래픽 카드(130)이다. 이 그래픽 카드(130)는 모니터의 사양에 따라서 지원하는 해상도에 조금의 차이는 있으나, 현재에 들어서는 svga(Super Video Graphics Array)가 많이 사용되고 있다. 일반적으로, svga 디스플레이는 컴퓨터의 비디오 메모리 크기에 따라 조금씩 달라질 수는 있지만, 최대 1,600만 색까지의 팔레트를 지원하기도 한다. 주로, 사용되는 그래픽 카드(130)로는 NVIDIA사의 TNT2 시리즈 또는 Geforce 시리즈가 있다. 본 발명에서, 이 그래픽 카드(130)는 가속 기능이 있으며, RGB 오버레이 방식이 이용되는 것들이 바람직하게 이용된다.
상기 화면연산부(140)는 응용 프로그램이 운영시스템을 거치지 않고도 상기 그래픽 카드(130)를 제어할 수 있도록 해주는 응용 프로그램 인터페이스를 제공한다. 일 예에서, 상기 화면연산부(140)는 direct x와 같이 마이크로소프트사의 윈도우 환경에서 제공되는 것이 이용될 수 있다. 이 화면연산부(140)는 운영시스템을 사용하지 않기 때문에 매우 빠른 속도로 화면 처리나 소리 처리를 할 수 있어서 드라이브를 사용하는 다른 것들에 비해서 시스템을 최적화하여 사용할 수 있도록 한다.
상기 설정부(150)는 그래픽 카드(130)의 비디오 메모리에 프라이머리 서피스와 연결되는 스크린 버퍼, 화면과 중첩되어서 일부분의 확대된 화면을 보여주는 오버레이 서피스, 상기 오버레이 서피스에 확대된 화면을 플립하는 오버레이 백버퍼를 설정한다. 여기서, 프라이머리 서피스는 모니터를 통해 사용자에게 표시되는 화면의 전체영역을 정의하고, 오버레이 서피스는 프라이머리 서비스에 겹쳐지는 부분으로서 그 겹쳐지는 부분이 확대되어 표시되는 확대영역을 정의하는 영역이다.선택적으로, 설정부(150)는 상기 스크린 버퍼에 연결되는 dc 메모리를 메인 메모리(RAM)에 설정한다. 이 dc 메모리는 확대된 화면의 색깔을 보정하는데 이용되는 것이다. 그리고, 설정부(150)는 화면설정과, 동작 설정에 관한 것을 사용자로부터 입력받아 파일로 저장한다. 사용자가 설정한 화면설정에는 오버레이 서피스의 크기, 확대 배율, 확대된 화면을 보정하는 색깔, 텍스트 보정의 설정과 같은 것들을 포함한다. 또한, 사용자가 설정한 동작설정은 추적자, 중앙 정렬, 마진값과 같은 것들을 포함한다.
상기 산출부(160)는 추적자의 좌표를 운영시스템의 해당 파일에서 추출하고, 이 추적자의 움직임을 운영시스템을 통해서 감시한다. 그리고 운영시스템(120)에서 추적자의 위치를 수정함으로써 추적자를 강제적으로 이동시킨다.
상기 처리부(170)는 아래에서 설명되는 계산부의 동작에 따라서 계산된 확대 영역에 따라서 실제 화면을 부분적으로 확대해서 오버레이 서피스에 출력한다. 그리고, 확대된 화면의 색깔을 설정 파일에 설정된 것에 따라서 화면의 색깔을 수정하거나, 텍스트를 수정한다.
상기 계산부(180)는 확대되는 실제화면의 영역을 계산한다. 이것은 확대 배율과 오버레이 창의 크기를 가지고 운영시스템(120)에서 추출된 추적자의 위치에 따라서 계산된다.
상기 시스템 메모리(190)는 자기적으로 데이터를 저장하는 하드디스크(191, 192), 컴퓨터(100)로부터 탈착이 용이한 플로피 디스크(193) 및 cd-rom과 같은 광학적 디스크(194)를 포함한다. 이 시스템 메모리, 특히, 플로피 디스크(193) 및 광학 디스크(194)는 컴퓨터의 시스템과는 별도의 데이터를 일반적으로 저장한다. 그리고 하드디스크(191, 192)는 컴퓨터의 동작과 관계해서 필요한 응용 프로그램과 같은 것들이 기록된다. 그리고 도면에는 도시하지 않았지만, 시스템의 구동과 관계해서 롬 및 램을 포함하는 메모리가 더 포함된다. 바람직하게, 상기 램은 32M 이상의 것이 사용된다.
이하, 도 2와 관련해서, 본 발명의 바람직한 실시예에 따라 화면을 부분적으로 확대하는 과정이 설명된다. 컴퓨터의 구동과 동시에 운영 시스템(120)은 비디오 메모리(일반적으로, 그래픽 카드(130)에 있는 메모리로 시스템 메모리(190)와는 구별됨)에 프라이머리 서피스(primary surface)를 설정하고, 이를 통해서 사용자가 작업하는 현재의 실제 화면(모니터에 표시되는 전체화면)을 보여준다(S100). 이 프라이머리 서피스는 화면출력과 관계해서, 비디오 메모리 상에 설정된 저장 영역으로, 화면의 해상도(예, 800픽셀×600픽셀), 현재 화면의 주사율(예, 60Hz), 화면에 출력되고 있는 데이터와 같은 정보들을 저장함과 동시에 화면에 출력한다.
S200에서, 설정부(140)는 상기 그래픽 카드(130)의 비디오 메모리 상에 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer), 스크린 버퍼(screen buffer)를 설정한다. 여기서, 스크린 버퍼는 모니터에 표시되는 전체영역에 해당하는 프라이머리 서피스의 화면정보로부터 부분적으로 확대된 확대영역의 화면정보를 저장한다. 또한, 오버레이 백버퍼는 오버레이 서피스에서 보여지는 확대영역을 상기 스크린 버퍼로부터 받아 오버레이 서피스 상에서 플립(flip)함으로써 오버레이 서피스에 화면을 출력하도록 저장한다.그리고, 오버레이 서피스는 프라이머리 서피스의 전체영역에 겹쳐져 사용자에게 표시되는 화면의 확대영역인 것이다.
이후, 산출부(160)는 운영 시스템(120)으로부터 프라이머리 서피스 상에서의 추적자의 좌표를 추출한다(S300). 이 추적자는 사용자가 입력을 통해 설정한 것으로서, 커서, 마우스의 포인트, 활성화된 창과 같은 것들이 이용된다. 마우스(또는 커서)의 예에서, 좌표는 451픽셀(pixel)×650픽셀과 같이 산출된다. 활성화된 창의 예에서는 활성화된 창의 특정 지역, 바람직하게 활성화된 창의 좌측 상단의 좌표를 운영시스템(120)에서 추출한다.
산출된 좌표에 따라서 처리부(170)는 이 좌표에 대응하는 프라이머리 서피스에 기록된 화면의 일 부분을 확대해서 스크린 버퍼에 복사한다(S400). 이 단계(S400)와 관계해서 확대 과정이 도 3에 보다 구체적으로 도시하고 있다.
도 3에서, 처리부(170)의 동작에 따라서 기록된 설정 파일로부터 추적자를 확인한다. 마우스, 활성화된 창 또는 커서 중에서 선택된 추적자에 따라서 처리부(170)는 운영시스템(120)으로부터 추적자의 좌표를 산출한다(S401, S402)
그리고, 처리부(170)는 설정 파일에서 화면의 확대 배율 및 오버레이 서피스의 크기(예, 200픽셀×400픽셀)를 추출한다(S403).
추출된 확대 배율과 오버레이 서피스의 크기에 따라서 추적자의 좌표를 기준점으로 해서 가로×세로의 크기를 계산부(180)는 연산한다. 예를 들어서, 추적자의 좌표 450픽셀×780픽셀, 확대 배율 2배, 오버레이 서피스의 크기가 200픽셀×400픽셀이라고 가정하자. 그러면, 확대된 화면의 영역은 추적자의 위치를 기준점으로 해서 가로 10픽셀, 세로 20픽셀로 계산된다. 만일, 확대 배율만 4배인 경우에는 가로 5픽셀, 세로 10픽셀로 계산된다.
즉, 확대 배율 2배의 예에서, 추적자로부터 가로 10픽셀×세로 20픽셀의 사각형 내의 실제 화면을 2배로 확대하게 된다(S404).
다시, 도 2로 돌아가서, 도 3과 같은 방법으로 프라이머리 서피스에 기록된 화면을 근거로 실제 화면을 부분적으로 확대해서 이를 스크린 버퍼에 복사한다(S400).
그리고, 처리부(170)는 이 스크린 버퍼에 기록된 확대된 화면을 1:1의 화면 크기로 다시 복사해서 오버레이 백버퍼로 복사한다(S500).
마지막으로, 처리부(170)는 오버레이 백버퍼에 복사된 화면을 오버레이 서피스로 플립함으로써 확대된 화면이 오버레이 서피스에 나타나게 된다(S600).
도 4는 확대 화면의 마진에 따라서 화면을 확대하는 과정을 도시한 흐름도이다. 여기에서 마진은 오버레이 서피스의 가장 자리로부터의 거리를 의미한다. 예를 들어서, 오버레이 서피스 화면의 크기가 가로 300픽셀 × 세로 400픽셀이고, 마진이 10으로 설정된 경우에, 추적자(이 실시예에서는 커서와 마우스만 대상으로 함)가 가로로 290픽셀을 넘어가면 새롭게 오른쪽에 확대되지 않은 화면을 확대하게 된다. 반면에, 가로 10픽셀 ∼ 290 픽셀 범위에서 추적자가 움직이는 경우에는 확대 화면의 이동없이, 이전에 확대된 화면을 그대로 사용자에게 보여준다.
산출부(160)는 운영시스템(120)으로부터 설정된 추적자의 움직임을 감시한다(S451). 그리고, 설정 파일에서 설정된 마진의 값을 추출한다(S452).
산출부(160)는 마진을 추적자의 좌표와 비교함으로써 이 마진의 범위를 초과하는 추적자의 움직임이 있는지를 판단한다(S453).
마진을 벗어나지 않는 추적자의 움직임에 대해서, 처리부(170)는 현재 오버레이 서피스을 통해서 보여지고 있는 확대된 화면을 그대로 유지한다. 반면에, 마진을 벗어나는 추적자의 움직임에 대해서는 도 3에서 설명한 것처럼 프라이머리 서피스 상에서 확대할 화면의 범위를 산출하고, 이에 따라서 화면을 새롭게 확대하여 오버레이 서피스에 표시한다(S454).
도 5는 마우스를 확대되고 있는 실제 화면에 위치시키는 과정을 도시한 것이다. 이것은 추적자를 다양하게 선택하고 있어서 창을 이동하는 과정에서 확대되고 있는 실제 화면에 마우스가 위치하지 않는 경우에 강제적으로 마우스를 그 위치로 이동시키기 위한 것이다.
산출부(160)는 프라이머리 서피스 화면에서 마우스가 위치하고 있는 좌표를 운영시스템(120)으로부터 산출한다(S411). 그리고, 현재 확대하고 있는 오버레이 서피스 화면의 영역을 추출한다. 이 과정들을 통해서 마우스의 위치가 가로 860 픽셀 × 세로 950 픽셀(프라이머리 서피스 좌표)로 추출되고, 확대된 실제 화면의 영역은 가로 120 픽셀 ∼ 140 픽셀 × 세로 340 픽셀 ∼ 350 픽셀(오버레이 서피스 영역)로 계산되었다고 가정한다.
그러면, 마우스의 위치는 확대된 실제 영역 내에 포함되고 있지 않다고 산출부(160)는 판단한다(S413). 따라서, 산출부(160)는 운영 시스템(120)에서 마우스 위치 정보를 가로 130 픽셀 × 세로 345 픽셀로 수정을 한다(S414). 따라서, 마우스는 확대된 오버레이 서피스 화면의 범위내로 이동하게 된다.
도 6은 확대 화면의 색깔을 보정하는 과정을 도시한 것이다. 처리부(170)는 스크린 버퍼와 연결되는 dc(device context) 메모리를 시스템 메모리(190)에 부가적으로 설정한다(S421). 이 dc 메모리는 장치 드라이버, 여기서는 그래픽 카드의 드라이버 전단에서 필요한 데이터를 처리할 수 있도록 함으로써 처리 속도를 향상시켜 준다.
그리고, 처리부(170)는 스크린 버퍼로부터 확대된 화면을 상기 dc 메모리에 복사하고(S422), 설정 파일에서 설정된 색깔에 대한 정보를 읽어 온다. 이 정보에는 보정하고자 하는 색깔에 관한 것과 텍스트의 수정에 관한 정보가 포함된다.
이 설정 파일에 따라서, 처리부(170)는 확대된 화면의 색깔을 수정하고(S423), 이를 스크린 버퍼에 다시 입력(S424)함으로써 확대된 화면의 보정이 가능하다.
텍스트 수정의 예에서, 픽셀이 커짐에 따라서 생기는 글자의 계단 모양의 직선으로 처리함으로써 보다 자연스러운 글자를 만들 수 있도록 한다.
프로그램의
작성예
1. 실제 화면을 부분적으로 확대해서 오버레이 서피스에 표시하는 예
HRESULT TDXOverlay::CreateOverlay(DWORD dwWidth, DWORD dwHeight)
{
DDPIXELFORMAT ddpfOverlayFormat;
DDSCAPS2 ddscaps;
HRESULT hr;
SAFE_RELEASE( m_lpDDSOverlay );
ZeroMemory( &m_ddsd, sizeof(m_ddsd) );
m_ddsd.dwSize = sizeof(m_ddsd);
m_ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH |
DDSD_BACKBUFFERCOUNT | DDSD_PIXELFORMAT;
m_ddsd.ddsCaps.dwCaps = DDSCAPS_OVERLAY | DDSCAPS_FLIP |
DDSCAPS_COMPLEX | DDSCAPS_VIDEOMEMORY;
m_ddsd.dwBackBufferCount = 1;
m_ddsd.dwWidth = dwWidth;
m_ddsd.dwHeight = dwHeight;
SetPixelFormatTo16RGB(&ddpfOverlayFormat);
m_ddsd.ddpfPixelFormat = ddpfOverlayFormat; // Use 16 bit RGB 5:6:5 pixel format
if( FAILED( hr = m_lpDD->CreateSurface( &m_ddsd, &m_lpDDSOverlay, NULL ) ) )
{
SetPixelFormatTo15RGB(&ddpfOverlayFormat);
m_ddsd.ddpfPixelFormat = ddpfOverlayFormat; // Use 16 bit RGB 5:5:5 pixel format
if( FAILED( hr = m_lpDD->CreateSurface( &m_ddsd, &m_lpDDSOverlay, NULL ) ) )
{
SetPixelFormatToYUY2(&ddpfOverlayFormat);
m_ddsd.ddpfPixelFormat = ddpfOverlayFormat;
// YUY2
if( FAILED( hr = m_lpDD->CreateSurface( &m_ddsd, &m_lpDDSOverlay, NULL ) ) )
{
SetPixelFormatToUYVY(&ddpfOverlayFormat);
m_ddsd.ddpfPixelFormat = ddpfOverlayFormat; // UYVY
if( FAILED( hr = m_lpDD->CreateSurface( &m_ddsd, &m_lpDDSOverlay, NULL ) ) )
return hr;
}
}
}
ZeroMemory(&ddscaps, sizeof(ddscaps));
ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
if( FAILED( hr = m_lpDDSOverlay->GetAttachedSurface( &ddscaps, &m_lpDDSOverlayBack ) ) )
return hr;
ZeroMemory( &m_OverlayFX, sizeof(m_OverlayFX) );
m_OverlayFX.dwSize = sizeof(m_OverlayFX);
m_dwOverlayFlags = DDOVER_SHOW;
if (m_ddcaps.dwCKeyCaps & DDCKEYCAPS_DESTOVERLAY)
{
DWORD dwDDSColor;
dwDDSColor = ConvertGDIColor( m_dwBackgroundColor );
m_OverlayFX.dckDestColorkey.dwColorSpaceLowValue = dwDDSColor;
m_OverlayFX.dckDestColorkey.dwColorSpaceHighValue = dwDDSColor;
m_dwOverlayFlags |= DDOVER_DDFX | DDOVER_KEYDESTOVERRIDE;
}
ZeroMemory( &m_scbufddsd, sizeof(m_scbufddsd) );
m_scbufddsd.dwSize = sizeof(m_scbufddsd);
m_scbufddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
m_scbufddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
m_scbufddsd.dwWidth = m_SizeX;
m_scbufddsd.dwHeight = m_SizeY;
if( FAILED( hr = m_lpDD->CreateSurface( &m_scbufddsd, &m_lpDDSScreenBuffer, NULL ) ) )
{
//MessageBox(NULL, "Fail to create Screen buffer surface", "LL", MB_OK);
return hr;
}
return S_OK;
}
m_lpDDSScreenBuffer->Blt(NULL, m_lpDDSPrimary, &m_ZoomRect, DDBLT_WAIT, NULL);
m_lpDDSOverlayBack->BltFast(0,0, m_lpDDSScreenBuffer, NULL, DDBLTFAST_WAIT);
void TDXOverlay::Flip()
{
m_lpDDSOverlay->Flip( NULL, DDFLIP_WAIT );
}
2. 확대된 화면의 색깔을 수정하는 예
DoColorInvert(RECT rc)
{
HDC hScreenDC;
HBRUSH MyBrush, OldBrush;
m_lpDDSScreenBuffer->GetDC(&hScreenDC);
if(MyMenuSetting.InvertingWay== 0){
int ir;
ir=(int)((MyMenuSetting.InvertingPercent * 255)/100);
MyBrush= CreateSolidBrush(RGB(ir, ir, ir));
OldBrush=(HBRUSH)SelectObject(hScreenDC, MyBrush);
PatBlt(hScreenDC, 0, 0, rc.right, rc.bottom, PATINVERT);
}
else{
HDC hMemDC1 , hMemDC2;
HBITMAP DstBits , SrcBits; hMemDC1 = CreateCompatibleDC(hScreenDC);
hMemDC2 = CreateCompatibleDC(hScreenDC);
SrcBits = CreateCompatibleBitmap(hScreenDC, rc.right, rc.bottom);
DstBits = CreateCompatibleBitmap(hScreenDC, rc.right, rc.bottom);
SelectObject(hMemDC1, SrcBits);
SelectObject(hMemDC2, DstBits);
BitBlt(hMemDC1, 0, 0, rc.right, rc.bottom, hScreenDC, 0, 0, SRCCOPY); PatBlt(hMemDC1, 0, 0, rc.right, rc.bottom, PATINVERT);
TransparentBlt(hMemDC2, 0, 0, rc.right, rc.bottom, hScreenDC, 0, 0, rc.right, rc.bottom, RGB(255, 255, 255));
TransparentBlt(hMemDC1, 0, 0, rc.right, rc.bottom, hMemDC2, 0, 0, rc.right, rc.bottom, RGB(0, 0, 0));
BitBlt(hScreenDC, 0, 0, rc.right, rc.bottom, hMemDC1, 0, 0, SRCCOPY);
DeleteObject(SrcBits);
DeleteObject(DstBits);
DeleteDC(hMemDC1);
DeleteDC(hMemDC2);
}
//adding
SelectObject(hScreenDC,OldBrush);
DeleteObject(MyBrush);
DeleteObject(OldBrush);
m_lpDDSScreenBuffer->ReleaseDC(hScreenDC);
}
이상과 같이, 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
본 발명에 따르면, 종래 드라이버를 사용하여 구현하던 화면 확대 방법에 비해서 그 시스템 리소스를 적게 사용할 수 있으므로, 보다 안정적인 상태에서 구동이 가능하다. 또한, 별도의 드라이버를 사용하지 않기 때문에 운영 시스템과의 호환 문제가 발생하지 않는다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술하는 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다
도 1은 본 발명에 따른 컴퓨터의 기능적 구성을 도시한 블록구성도이다.
도 2는 본 발명의 전체적인 흐름을 도시한 흐름도이다.
도 3은 화면을 확대하는 과정을 도시한 흐름도이다.
도 4는 확대 화면의 마진에 따라서 화면을 확대하는 과정을 도시한 흐름도이다.
도 5는 마우스를 확대되고 있는 실제 화면에 위치시키는 과정을 도시한 것이다.
도 6은 확대 화면의 색깔을 보정하는 과정을 도시한 흐름도이다.
*도면의 주요부호에 대한 간단한 설명*
100 : 컴퓨터 110 : 중앙연산장치(CPU) 120 : 운영시스템
130 : 그래픽 카드 140 : 다이렉트 엑스(Direct X) 150 : 설정부
160 : 산출부 170 : 처리부 180 : 연산부
190 : 시스템 메모리
Claims (18)
- 컴퓨터에서 모니터를 통해 출력되는 화면의 일정 부분을 확대하는 방법에 관한 것으로,비디오 메모리에 모니터 전체화면에 표시되는 전체영역의 프라이머리 서피스로부터 소정의 확대영역에 대한 확대된 화면정보를 저장하는 스크린 버퍼(screen buffer), 상기 스크린 버퍼의 내용이 복사되어 화면에 실제로 표시할 확대영역의 화면정보를 저장하는 오버레이 백버퍼(overlay backbuffer) 및 상기 오버레이 백버퍼에 저장된 화면정보가 상기 프라이머리 서피스 위에 겹쳐져 표시되는 오버레이 서피스(overlay surface)를 설정하는 단계;현재 모니터를 통해 나타나는 화면에서 추적자의 좌표값을 상기 컴퓨터의 운영 시스템으로부터 산출하는 단계;상기 좌표값에 따라 화면의 일정 부분을 상기 운영 시스템의 프라이머리 서피스(primary surface)에 기록된 화면을 근거로 이 화면을 부분적으로 확대해서 상기 스크린 버퍼에 복사하는 단계;상기 스크린 버퍼에서 부분적으로 확대된 화면을 상기 오버레이 백버퍼에 1:1의 화면 크기로 복사하는 단계; 그리고상기 오버레이 백버퍼로부터 상기 오버레이 서피스에 확대된 화면을 플립(flip)함으로써 화면을 확대해서 출력하는 단계;를 포함하고,상기 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)는 컴퓨터의 이미지 인터페이스에 의해서 설정되는 것을 특징으로 하는 컴퓨터에서 화면을 부분적으로 확대하는 방법.
- 제1항에 있어서,상기 방법은, 상기 좌표값을 기준으로 해서 설정된 화면의 확대 배율과 설정된 오버레이 서피스의 크기를 근거로 가로×세로의 확대 크기를 변화시키면서 산출하는 단계;를 더 포함하는 것을 특징으로 하는 컴퓨터에서 화면을 부분적으로 확대하는 방법.
- 제1항에 있어서, 상기 방법은,상기 스크린 버퍼와 연결되는 디씨(Device Context) 메모리를 시스템 메모리에 설정하는 단계;상기 스크린 버퍼에 기록된 확대된 화면을 상기 디씨 메모리에 복사하는 단계;설정된 색깔에 따라서 상기 확대된 화면의 색깔을 보정하는 단계; 그리고보정된 화면을 상기 스크린 버퍼에 입력하는 단계;를 더 포함하는 것을 특징으로 하는 컴퓨터에서 화면을 확대하는 방법.
- 제1항 또는 제3항에 있어서,상기 추적자는 커서(cursor), 활성화된 창 또는 마우스 중의 어느 하나인 것을 특징으로 하는 컴퓨터에서 화면을 확대하는 방법.
- 제1항에 있어서, 상기 추적자는 마우스이고,운영시스템에서 마우스의 위치를 추출하는 단계;상기 마우스가 부분적으로 확대된 화면 영역에 해당하는 실제화면에 있는지를 판단하는 단계; 그리고마우스의 위치를 운영시스템에서 상기 확대된 화면 영역내의 좌표로 수정함으로써 강제적으로 마우스를 이동시키는 단계;를 더 포함하는 것을 특징으로 하는 컴퓨터에서 화면을 부분적으로 확대하는 방법.
- 제1항에 있어서, 상기 추적자는 마우스 또는 커서 중의 어느 하나이고,상기 추적자를 모니터링하는 단계;오버레이 서피스의 마진과 상기 추적자의 좌표를 비교해서 추적자가 마진을 벗어나는지를 판단하는 단계;마진 범위내의 추적자의 움직임에 대해서는 확대된 화면을 그대로 유지하고, 마진을 초과하는 추적자의 움직임에 대해서는 청구항 1의 과정을 반복함으로써 추적자의 새로운 좌표에 따라 화면을 다시 부분적으로 확대해서 출력하는 단계;를 더 포함하는 것을 특징으로 하는 컴퓨터에서 화면을 부분적으로 확대하는 방법.
- 컴퓨터에서 모니터를 통해 출력되는 화면의 일정 부분을 확대하는 프로그램이 기록된 매체에 관한 것으로,비디오 메모리에 모니터 전체화면에 표시되는 전체영역의 프라이머리 서피스로부터 소정의 확대영역에 대한 확대된 화면정보를 저장하는 스크린 버퍼(screen buffer), 상기 스크린 버퍼의 내용이 복사되어 화면에 실제로 표시할 확대영역의 화면정보를 저장하는 오버레이 백버퍼(overlay backbuffer) 및 상기 오버레이 백버퍼에 저장된 화면정보가 상기 프라이머리 서피스 위에 겹쳐져 표시되는 오버레이 서피스(overlay surface)를 설정하는 단계;현재 모니터를 통해 나타나는 화면에서 추적자의 좌표값을 상기 컴퓨터의 운영 시스템으로부터 산출하는 단계;상기 좌표값에 따라 화면의 일정 부분을 상기 운영 시스템의 프라이머리 서피스(primary surface)에 기록된 화면을 근거로 이 화면을 부분적으로 확대해서 상기 스크린 버퍼에 복사하는 단계;상기 스크린 버퍼에서 부분적으로 확대된 화면을 상기 오버레이 백버퍼에 1:1의 화면 크기로 복사하는 단계; 그리고상기 오버레이 백버퍼로부터 상기 오버레이 서피스에 확대된 화면을 플립(flip)함으로써 화면을 확대해서 출력하는 단계;를 포함하고,상기 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)는 컴퓨터의 이미지 인터페이스에 의해서 설정되는 것을 특징으로 하는 프로그램이 기록된 매체.
- 제7항에 있어서,상기 매체는, 상기 좌표값을 기준으로 해서 설정된 화면의 확대 배율과 설정된 오버레이 서피스의 크기를 근거로 가로×세로의 확대 크기를 변화시키면서 산출하는 단계;를 더 포함하는 것을 특징으로 하는 프로그램이 기록된 매체.
- 제7항에 있어서, 상기 매체는,상기 스크린 버퍼와 연결되는 디씨(Device Context) 메모리를 시스템 메모리에 설정하는 단계;상기 스크린 버퍼에 기록된 확대된 화면을 상기 디씨 메모리에 복사하는 단계;설정된 색깔에 따라서 상기 확대된 화면의 색깔을 보정하는 단계; 그리고보정된 화면을 상기 스크린 버퍼에 입력하는 단계;를 더 포함하는 것을 특징으로 하는 프로그램이 기록된 매체.
- 제7항 또는 제9항에 있어서,상기 추적자는 커서(cursor), 활성화된 창 또는 마우스 중의 어느 하나인 것을 특징으로 하는 프로그램이 기록된 매체.
- 제1항에 있어서, 상기 추적자는 마우스이고,운영시스템에서 마우스의 위치를 추출하는 단계;상기 마우스가 부분적으로 확대된 화면 영역에 해당하는 실제화면에 있는지를 판단하는 단계; 그리고마우스의 위치를 운영시스템에서 상기 확대된 화면 영역내의 좌표로 수정함으로써 강제적으로 마우스를 이동시키는 단계;를 더 포함하는 것을 특징으로 하는 프로그램이 기록된 매체.
- 제1항에 있어서, 상기 추적자는 마우스 또는 커서 중의 어느 하나이고,상기 추적자를 모니터링하는 단계;오버레이 서피스의 마진과 상기 추적자의 좌표를 비교해서 추적자가 마진을 벗어나는지를 판단하는 단계;마진 범위내의 추적자의 움직임에 대해서는 확대된 화면을 그대로 유지하고, 마진을 초과하는 추적자의 움직임에 대해서는 청구항 1의 과정을 반복함으로써 추적자의 새로운 좌표에 따라 화면을 다시 부분적으로 확대해서 출력하는 단계;를 더 포함하는 것을 특징으로 프로그램이 기록된 매체.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0019176A KR100486180B1 (ko) | 2002-04-09 | 2002-04-09 | 컴퓨터에서 화면을 부분적으로 확대하는 방법 및 그기록매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0019176A KR100486180B1 (ko) | 2002-04-09 | 2002-04-09 | 컴퓨터에서 화면을 부분적으로 확대하는 방법 및 그기록매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030080508A KR20030080508A (ko) | 2003-10-17 |
KR100486180B1 true KR100486180B1 (ko) | 2005-05-03 |
Family
ID=32378250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-0019176A KR100486180B1 (ko) | 2002-04-09 | 2002-04-09 | 컴퓨터에서 화면을 부분적으로 확대하는 방법 및 그기록매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100486180B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101080406B1 (ko) * | 2005-01-04 | 2011-11-04 | 삼성전자주식회사 | 이미지 재생방법 및 이를 수행하는 이미지 처리장치 |
KR100756129B1 (ko) | 2005-06-28 | 2007-09-05 | 주식회사 팬택앤큐리텔 | 디스플레이영역 변화에 따른 유동적 디스플레이 장치 및방법 |
US7689926B2 (en) | 2006-03-31 | 2010-03-30 | Microsoft Corporation | Selective window exclusion for captured content |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0991114A (ja) * | 1995-09-27 | 1997-04-04 | Sharp Corp | マルチウィンドウ表示装置およびマルチウィンドウ制御方法 |
JPH10124280A (ja) * | 1996-10-22 | 1998-05-15 | Toshiba Corp | ウィンドウシステムにおける表示方法 |
KR19980067984A (ko) * | 1997-02-14 | 1998-10-15 | 김광호 | 화면확대 포인트입력기능을 갖는 컴퓨터장치 및 그 제어방법 |
KR19990006550A (ko) * | 1997-06-02 | 1999-01-25 | 이데이 노부유끼 | 디지탈 지도의 확대 축소 표시 방법. 디지탈 지도의 확대 축소 표시 장치, 및 디지탈 지도의 확대 축소 표시 프로그램을 저장하깅 위한 저장 매체 |
JPH11184595A (ja) * | 1997-12-18 | 1999-07-09 | Toshiba Corp | 画面拡大表示方法ならびに装置及び同方法がプログラムされ記録される記録媒体 |
KR20000036836A (ko) * | 2000-03-30 | 2000-07-05 | 송주엽 | 선택된 데이터를 확대하여 표시하는 방법 및 이를구현하기 위한 기록매체 |
-
2002
- 2002-04-09 KR KR10-2002-0019176A patent/KR100486180B1/ko not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0991114A (ja) * | 1995-09-27 | 1997-04-04 | Sharp Corp | マルチウィンドウ表示装置およびマルチウィンドウ制御方法 |
JPH10124280A (ja) * | 1996-10-22 | 1998-05-15 | Toshiba Corp | ウィンドウシステムにおける表示方法 |
KR19980067984A (ko) * | 1997-02-14 | 1998-10-15 | 김광호 | 화면확대 포인트입력기능을 갖는 컴퓨터장치 및 그 제어방법 |
KR19990006550A (ko) * | 1997-06-02 | 1999-01-25 | 이데이 노부유끼 | 디지탈 지도의 확대 축소 표시 방법. 디지탈 지도의 확대 축소 표시 장치, 및 디지탈 지도의 확대 축소 표시 프로그램을 저장하깅 위한 저장 매체 |
JPH11184595A (ja) * | 1997-12-18 | 1999-07-09 | Toshiba Corp | 画面拡大表示方法ならびに装置及び同方法がプログラムされ記録される記録媒体 |
KR20000036836A (ko) * | 2000-03-30 | 2000-07-05 | 송주엽 | 선택된 데이터를 확대하여 표시하는 방법 및 이를구현하기 위한 기록매체 |
Also Published As
Publication number | Publication date |
---|---|
KR20030080508A (ko) | 2003-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhao et al. | Foresee: A customizable head-mounted vision enhancement system for people with low vision | |
Rodríguez et al. | Telling stories with data visualization | |
Cockburn et al. | Faster document navigation with space-filling thumbnails | |
Harrison et al. | Lean and zoom: proximity-aware user interface and content magnification | |
Cohn et al. | What's your neural function, visual narrative conjunction? Grammar, meaning, and fluency in sequential image processing | |
Rice et al. | Design considerations for haptic and auditory map interfaces | |
CN111935532B (zh) | 视频的交互方法、装置、电子设备及存储介质 | |
US20020060680A1 (en) | Method for context-preserving magnification of digital image regions | |
Rzayev et al. | Reading in VR: The effect of text presentation type and location | |
KR20040090958A (ko) | 아이 트래킹 데이터의 사용을 용이하게 하는 기술 | |
KR20060073440A (ko) | 컴퓨터 사용자의 컴퓨팅 경험을 구성하도록 할 수 있는시스템 및 방법 | |
Dias | Technology enhanced learning and augmented reality: An application on multimedia interactive books. | |
Ishimaru et al. | Towards an intelligent textbook: eye gaze based attention extraction on materials for learning and instruction in physics | |
Grout et al. | Reading text in an immersive head-mounted display: An investigation into displaying desktop interfaces in a 3D virtual environment | |
Cantoni et al. | A multi-sensory approach to cultural heritage: the battle of Pavia exhibition | |
US11640200B2 (en) | Gaze-contingent screen magnification control | |
Cheng et al. | Smooth gaze: a framework for recovering tasks across devices using eye tracking | |
Grant et al. | 3D, virtual, augmented, extended, mixed reality, and extended content forms: The technology and the challenges | |
Zhang | Immersive multimedia art design based on deep learning intelligent VR technology | |
KR100486180B1 (ko) | 컴퓨터에서 화면을 부분적으로 확대하는 방법 및 그기록매체 | |
Sandnes | Lost in OCR-Translation: pixel-based text reflow to the rescue: magnification of archival raster image documents in the browser without horizontal scrolling | |
Manduchi et al. | Gaze-Contingent Screen Magnification Control: A Preliminary Study | |
Isenberg et al. | Digital tables for collaborative information exploration | |
Wilson et al. | Autopager: Exploiting change blindness for gaze-assisted reading | |
Blenkhorn et al. | Full-screen magnification for windows using DirectX overlays |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130220 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20140415 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20160310 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20170221 Year of fee payment: 13 |
|
LAPS | Lapse due to unpaid annual fee |