KR20030080508A - 컴퓨터에서 화면을 부분적으로 확대하는 방법 및 그기록매체 - Google Patents

컴퓨터에서 화면을 부분적으로 확대하는 방법 및 그기록매체 Download PDF

Info

Publication number
KR20030080508A
KR20030080508A KR1020020019176A KR20020019176A KR20030080508A KR 20030080508 A KR20030080508 A KR 20030080508A KR 1020020019176 A KR1020020019176 A KR 1020020019176A KR 20020019176 A KR20020019176 A KR 20020019176A KR 20030080508 A KR20030080508 A KR 20030080508A
Authority
KR
South Korea
Prior art keywords
screen
overlay
tracker
buffer
mouse
Prior art date
Application number
KR1020020019176A
Other languages
English (en)
Other versions
KR100486180B1 (ko
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 한국장애인고용촉진공단
Priority to KR10-2002-0019176A priority Critical patent/KR100486180B1/ko
Publication of KR20030080508A publication Critical patent/KR20030080508A/ko
Application granted granted Critical
Publication of KR100486180B1 publication Critical patent/KR100486180B1/ko

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/37Details of the operation on graphic patterns
    • G09G5/373Details of the operation on graphic patterns for modifying the size of the graphic pattern
    • 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
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/37Details of the operation on graphic patterns
    • G09G5/377Details of the operation on graphic patterns for mixing or overlaying two or more graphic patterns
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay 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

컴퓨터에서 화면을 부분적으로 확대하는 방법 및 그 기록매체{Methods for Amplifying Partially Screen on Computer and Recording Media therefor}
본 발명은 컴퓨터에서 화면을 부분적으로 확대하는 방법에 관한 것으로서, 더욱 상세하게는 저시력자들을 위해 컴퓨터에서 다이렉트 엑스(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)은 저시력 학생의 시각적 특성에 알맞은 조명 방식과 조도 수준, 활자의 크기, 독서 거리 및 칠판에서의 거리, 책상 면의 기울기등이 밝혀진다면 저시력 학생들이 읽거나 쓰기를 보다 효율적으로 수행하는데 도움을 준다고 하였다.
따라서 화면확대프로그램 개발에 있어서 밝기(brkghtness), 눈부심과 대비, 크기, 시간(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인데 국내에는 아직 뚜렷한 개발품이 없는 실정으로 국내 저시력 장애인들은 인터넷을 통하여 외국의 프리웨어나 셰어웨어 제품을 이용하거나 고가의 상용 제품을 수입해서 사용해야 하는 실정이다.
본 발명은 상기와 같이 저시력자들이 겪는 어려운 점들을 해결하기 위해 창안된 것으로서, 컴퓨터의 모니터에서 보여지는 화면을 컴퓨터에 로드가 걸리지 않도록 하기 위해서 드라이버를 사용하지 않고, 운영시스템 또는 부가적으로 컴퓨터에 설치되는 이미지 인터페이스를 통해서 구현함으로써 종래의 것들보다 구현하기가 용이한 본 발명을 제공하고자 한다. 나아가, 본 발명은 장애자들, 특히 저시력자의 정보 접근성을 높이기 위해서 공익적인 측면에서 개발된 본 발명을 저시력자들 누구나가 쉽게 구하여 사용할 수 있도록 하는데 그 목적이 있다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술하는 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다
도 1은 본 발명에 따른 컴퓨터의 기능적 구성을 도시한 블록구성도이다.
도 2는 본 발명의 전체적인 흐름을 도시한 흐름도이다.
도 3은 화면을 확대하는 과정을 도시한 흐름도이다.
도 4는 확대 화면의 마진에 따라서 화면을 확대하는 과정을 도시한 흐름도이다.
도 5는 마우스를 확대되고 있는 실제 화면에 위치시키는 과정을 도시한 것이다.
도 6은 확대 화면의 색깔을 보정하는 과정을 도시한 흐름도이다.
*도면의 주요부호에 대한 간단한 설명*
100 : 컴퓨터 110 : 중앙연산장치(CPU) 120 : 운영시스템
130 : 그래픽 카드 140 : 다이렉트 엑스(Direct X) 150 : 설정부
160 : 산출부 170 : 처리부 180 : 연산부
190 : 시스템 메모리
상기와 같은 목적을 달성하기 위하여 본 발명에 따른 컴퓨터에서 화면을 부분적으로 확대하는 방법은, 컴퓨터에서 모니터를 통해 출력되는 화면의 일정 부분을 확대하는 방법에 관한 것으로, 메모리에 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)를 설정하는 단계; 현재 모니터를 통해 나타나는 화면에서 추적자의 좌표값을 상기 컴퓨터의 운영 시스템으로부터 산출하는 단계; 상기 좌표값에 따라 화면의 일정 부분을 상기 운영 시스템의 프라이머리 서피스(primary surface)에 기록된 화면을 근거로 이 화면을 부분적으로 확대해서 상기 스크린 버퍼에 복사하는 단계; 상기 스크린 버퍼에서 부분적으로 확대된 화면을 상기 오버레이 백버퍼에 1:1의 화면 크기로 복사하는 단계; 그리고 상기 오버레이 백버퍼로부터 상기 오버레이 서피스에 확대된 화면을 플립(flip)함으로써 화면을 확대해서 출력하는 단계;를 포함하고, 상기 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)는 컴퓨터의 이미지 인터페이스에 의해서 설정된다.
바람직하게, 본 발명은 상기 좌표값을 기준으로 해서 설정된 화면의 확대 배율과 설정된 오버레이 화면의 크기를 근거로 가로×세로의 확대 크기를 변화시키면서 산출하는 단계;를 더 포함한다.
바람직하게, 본 발명은 상기 스크린 버퍼와 연결되는 디씨(Device Ccontent) 메모리를 시스템 메모리에 설정하는 단계; 상기 스크린 버퍼에 기록된 확대된 화면을 상기 디씨 메모리에 복사하는 단계; 설정된 색깔에 따라서 상기 확대된 화면의 색깔을 보정하는 단계; 그리고 보정된 화면을 상기 스크린 버퍼에 입력하는 단계를 더 포함한다.
본 발명의 다른 태양에서, 컴퓨터에서 모니터를 통해 출력되는 화면의 일정 부분을 확대하는 프로그램이 기록된 매체에 관한 것으로, 메모리에 오버레이 서피스(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)는 비디오 메모리에 프라이머리 서피스와 연결되는 스크린 버퍼, 화면과 중첩되어서 일부분의 확대된 화면을 보여주는 오버레이 서피스, 상기 오버레이 서피스에 확대된 화면을 플립하는 오버레이 백버퍼를 설정한다. 선택적으로, 이 설정부는 상기 스크린 버퍼에 연결되는 dc 메모리를 설정한다. 이 dc 메모리는 확대된 화면의 색깔을 보정하는데 이용되는 것이다. 그리고, 설정부는 화면설정과, 동작 설정에 관한 것을 사용자로부터 입력받아 파일로 저장한다. 이 화면설정에는 오버레이 화면의 크기, 확대 배율, 확대된 화면을 보정하는 색깔, 텍스트보정의 설정과 같은 것들을 포함한다. 동작 설정은 추적자, 중앙 정렬, 마진값과 같은 것들을 포함한다.
상기 산출부(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)는 상기 비디오메모리 상에 오버레이 서피스(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);
}
이상과 같이, 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
본 발명에 따르면, 종래 드라이버를 사용하여 구현하던 화면 확대 방법에 비해서 그 시스템 리소스를 적게 사용할 수 있으므로, 보다 안정적인 상태에서 구동이 가능하다. 또한, 별도의 드라이버를 사용하지 않기 때문에 운영 시스템과의 호환 문제가 발생하지 않는다.

Claims (18)

  1. 컴퓨터에서 모니터를 통해 출력되는 화면의 일정 부분을 확대하는 방법에 관한 것으로,
    메모리에 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)를 설정하는 단계;
    현재 모니터를 통해 나타나는 화면에서 추적자의 좌표값을 상기 컴퓨터의 운영 시스템으로부터 산출하는 단계;
    상기 좌표값에 따라 화면의 일정 부분을 상기 운영 시스템의 프라이머리 서피스(primary surface)에 기록된 화면을 근거로 이 화면을 부분적으로 확대해서 상기 스크린 버퍼에 복사하는 단계;
    상기 스크린 버퍼에서 부분적으로 확대된 화면을 상기 오버레이 백버퍼에 1:1의 화면 크기로 복사하는 단계; 그리고
    상기 오버레이 백버퍼로부터 상기 오버레이 서피스에 확대된 화면을 플립(flip)함으로써 화면을 확대해서 출력하는 단계;를 포함하고,
    상기 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)는 컴퓨터의 이미지 인터페이스에 의해서 설정되는 것을 특징으로 하는 컴퓨터에서 화면을 부분적으로 확대하는 방법.
  2. 제1항에 있어서,
    상기 방법은, 상기 좌표값을 기준으로 해서 설정된 화면의 확대 배율과 설정된 오버레이 화면의 크기를 근거로 가로×세로의 확대 크기를 변화시키면서 산출하는 단계;를 더 포함하는 것을 특징으로 하는 컴퓨터에서 화면을 부분적으로 확대하는 방법.
  3. 제1항에 있어서, 상기 방법은,
    상기 스크린 버퍼와 연결되는 디씨(Device Ccontent) 메모리를 시스템 메모리에 설정하는 단계;
    상기 스크린 버퍼에 기록된 확대된 화면을 상기 디씨 메모리에 복사하는 단계;
    설정된 색깔에 따라서 상기 확대된 화면의 색깔을 보정하는 단계; 그리고
    보정된 화면을 상기 스크린 버퍼에 입력하는 단계;
    를 더 포함하는 것을 특징으로 하는 컴퓨터에서 화면을 확대하는 방법.
  4. 제1항 또는 제3항에 있어서,
    상기 추적자는 커서(cursor), 활성화된 창 또는 마우스 중의 어느 하나인 것을 특징으로 하는 컴퓨터에서 화면을 확대하는 방법.
  5. 제1항에 있어서, 상기 추적자는 마우스이고,
    운영시스템에서 마우스의 위치를 추출하는 단계;
    상기 마우스가 부분적으로 확대된 화면 영역에 해당하는 실제화면에 있는지를 판단하는 단계; 그리고
    마우스의 위치를 운영시스템에서 상기 확대된 화면 영역내의 좌표로 수정함으로써 강제적으로 마우스를 이동시키는 단계;
    를 더 포함하는 것을 특징으로 하는 컴퓨터에서 화면을 부분적으로 확대하는 방법.
  6. 제1항에 있어서, 상기 추적자는 마우스 또는 커서 중의 어느 하나이고,
    상기 추적자를 모니터링하는 단계;
    오버레이 화면의 마진과 상기 추적자의 좌표를 비교해서 추적자가 마진을 벗어나는지를 판단하는 단계;
    마진 범위내의 추적자의 움직임에 대해서는 확대된 화면을 그대로 유지하고, 마진을 초과하는 추적자의 움직임에 대해서는 청구항 1의 과정을 반복함으로써 추적자의 새로운 좌표에 따라 화면을 다시 부분적으로 확대해서 출력하는 단계;
    를 더 포함하는 것을 특징으로 하는 컴퓨터에서 화면을 부분적으로 확대하는방법.
  7. 컴퓨터에서 모니터를 통해 출력되는 화면의 일정 부분을 확대하는 프로그램이 기록된 매체에 관한 것으로,
    메모리에 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)를 설정하는 단계;
    현재 모니터를 통해 나타나는 화면에서 추적자의 좌표값을 상기 컴퓨터의 운영 시스템으로부터 산출하는 단계;
    상기 좌표값에 따라 화면의 일정 부분을 상기 운영 시스템의 프라이머리 서피스(primary surface)에 기록된 화면을 근거로 이 화면을 부분적으로 확대해서 상기 스크린 버퍼에 복사하는 단계;
    상기 스크린 버퍼에서 부분적으로 확대된 화면을 상기 오버레이 백버퍼에 1:1의 화면 크기로 복사하는 단계; 그리고
    상기 오버레이 백버퍼로부터 상기 오버레이 서피스에 확대된 화면을 플립(flip)함으로써 화면을 확대해서 출력하는 단계;를 포함하고,
    상기 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)는 컴퓨터의 이미지 인터페이스에 의해서 설정되는 것을 특징으로 하는 프로그램이 기록된 매체.
  8. 제7항에 있어서,
    상기 매체는, 상기 좌표값을 기준으로 해서 설정된 화면의 확대 배율과 설정된 오버레이 화면의 크기를 근거로 가로×세로의 확대 크기를 변화시키면서 산출하는 단계;를 더 포함하는 것을 특징으로 하는 프로그램이 기록된 매체.
  9. 제7항에 있어서, 상기 매체는,
    상기 스크린 버퍼와 연결되는 디씨(Device Ccontent) 메모리를 시스템 메모리에 설정하는 단계;
    상기 스크린 버퍼에 기록된 확대된 화면을 상기 디씨 메모리에 복사하는 단계;
    설정된 색깔에 따라서 상기 확대된 화면의 색깔을 보정하는 단계; 그리고
    보정된 화면을 상기 스크린 버퍼에 입력하는 단계;
    를 더 포함하는 것을 특징으로 하는 프로그램이 기록된 매체.
  10. 제7항 또는 제9항에 있어서,
    상기 추적자는 커서(cursor), 활성화된 창 또는 마우스 중의 어느 하나인 것을 특징으로 하는 프로그램이 기록된 매체.
  11. 제1항에 있어서, 상기 추적자는 마우스이고,
    운영시스템에서 마우스의 위치를 추출하는 단계;
    상기 마우스가 부분적으로 확대된 화면 영역에 해당하는 실제화면에 있는지를 판단하는 단계; 그리고
    마우스의 위치를 운영시스템에서 상기 확대된 화면 영역내의 좌표로 수정함으로써 강제적으로 마우스를 이동시키는 단계;
    를 더 포함하는 것을 특징으로 하는 프로그램이 기록된 매체.
  12. 제1항에 있어서, 상기 추적자는 마우스 또는 커서 중의 어느 하나이고,
    상기 추적자를 모니터링하는 단계;
    오버레이 화면의 마진과 상기 추적자의 좌표를 비교해서 추적자가 마진을 벗어나는지를 판단하는 단계;
    마진 범위내의 추적자의 움직임에 대해서는 확대된 화면을 그대로 유지하고, 마진을 초과하는 추적자의 움직임에 대해서는 청구항 1의 과정을 반복함으로써 추적자의 새로운 좌표에 따라 화면을 다시 부분적으로 확대해서 출력하는 단계;
    를 더 포함하는 것을 특징으로 프로그램이 기록된 매체.
  13. 모니터를 통해 출력되는 화면의 일정 부분을 확대하는 장치에 관한 것으로,
    기억장치; 및
    상기 기억장치와 연결된 처리장치를 포함하고,
    상기 기억장치는 상기 처리장치를 제어하기 위한 운영프로그램을 저장하며,
    상기 처리장치는,
    메모리에 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)를 설정하고;
    현재 상기 모니터를 통해 나타나는 화면에서 추적자의 좌표값을 상기 운영프로그램으로부터 산출하고;
    상기 좌표값에 따라 화면의 일정 부분을 상기 운영프로그램의 프라이머리 서피스(primary surface)에 기록된 화면을 근거로 이 화면을 부분적으로 확대해서 상기 스크린 버퍼에 복사하고;
    상기 스크린 버퍼에서 부분적으로 확대된 화면을 상기 오버레이 백버퍼에 1:1의 화면 크기로 복사하고; 그리고
    상기 오버레이 백버퍼로부터 상기 오버레이 서피스에 확대된 화면을 플립(flip)함으로써 화면을 확대해서 출력하는 프로그램에 의해서 구동되고,
    상기 오버레이 서피스(overlay surface), 오버레이 백버퍼(overlay backbuffer) 및 스크린 버퍼(screen buffer)는 상기 장치의 이미지 인터페이스에의해서 설정되는 것을 특징으로 하는 장치.
  14. 제1항에 있어서,
    상기 처리장치는, 상기 좌표값을 기준으로 해서 설정된 화면의 확대 배율과 설정된 오버레이 화면의 크기를 근거로 가로×세로의 확대 크기를 변화시키면서 산출하는 프로그램에 의해서 구동되는 것을 특징으로 하는 장치.
  15. 제1항에 있어서, 상기 처리장치는,
    상기 스크린 버퍼와 연결되는 디씨(Device Ccontent) 메모리를 상기 기억장치에 설정하고;
    상기 스크린 버퍼에 기록된 확대된 화면을 상기 디씨 메모리에 복사하고;
    설정된 색깔에 따라서 상기 확대된 화면의 색깔을 보정하고; 그리고
    보정된 화면을 상기 스크린 버퍼에 입력하는 프로그램에 의해서 구동되는 것을 특징으로 하는 장치.
  16. 제13항 또는 제15항에 있어서,
    상기 추적자는 커서(cursor), 활성화된 창 또는 마우스 중의 어느 하나인 것을 특징으로 장치.
  17. 제13항에 있어서, 상기 추적자는 마우스이고,
    상기 처리장치는, 상기 운영프로그램에서 마우스의 위치를 추출하고;
    상기 마우스가 부분적으로 확대된 화면 영역에 해당하는 실제화면에 있는지를 판단하고; 그리고
    마우스의 위치를 상기 운영프로그램에서 상기 확대된 화면 영역내의 좌표로 수정함으로써 강제적으로 마우스를 이동시키는 프로그램에 의해서 구동되는 것을 특징으로 하는 장치.
  18. 제13항에 있어서, 상기 추적자는 마우스 또는 커서 중의 어느 하나이고,
    상기 처리장치는, 상기 추적자를 모니터링하고;
    오버레이 화면의 마진과 상기 추적자의 좌표를 비교해서 추적자가 마진을 벗
    어나는지를 판단하고;
    마진 범위내의 추적자의 움직임에 대해서는 확대된 화면을 그대로 유지하고, 마진을 초과하는 추적자의 움직임에 대해서는 청구항 1의 과정을 반복함으로써 추적자의 새로운 좌표에 따라 화면을 다시 부분적으로 확대해서 출력하는 프로그램에 의해서 구동되는 것을 특징으로 하는 장치.
KR10-2002-0019176A 2002-04-09 2002-04-09 컴퓨터에서 화면을 부분적으로 확대하는 방법 및 그기록매체 KR100486180B1 (ko)

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 true KR20030080508A (ko) 2003-10-17
KR100486180B1 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100756129B1 (ko) * 2005-06-28 2007-09-05 주식회사 팬택앤큐리텔 디스플레이영역 변화에 따른 유동적 디스플레이 장치 및방법
WO2007114886A1 (en) * 2006-03-31 2007-10-11 Microsoft Corporation Selective window exclusion for captured content
KR101080406B1 (ko) * 2005-01-04 2011-11-04 삼성전자주식회사 이미지 재생방법 및 이를 수행하는 이미지 처리장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3278329B2 (ja) * 1995-09-27 2002-04-30 シャープ株式会社 マルチウィンドウ表示装置およびマルチウィンドウ表示方法
JPH10124280A (ja) * 1996-10-22 1998-05-15 Toshiba Corp ウィンドウシステムにおける表示方法
KR100278359B1 (ko) * 1997-02-14 2001-01-15 윤종용 화면확대 포인트입력기능을 갖는 컴퓨터장치 및 그 제어방법
JP3975472B2 (ja) * 1997-06-02 2007-09-12 ソニー株式会社 デジタルマップの拡大縮小表示方法、デジタルマップの拡大縮小表示装置、及びデジタルマップの拡大縮小表示プログラムを格納した格納媒体
JPH11184595A (ja) * 1997-12-18 1999-07-09 Toshiba Corp 画面拡大表示方法ならびに装置及び同方法がプログラムされ記録される記録媒体
KR20000036836A (ko) * 2000-03-30 2000-07-05 송주엽 선택된 데이터를 확대하여 표시하는 방법 및 이를구현하기 위한 기록매체

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101080406B1 (ko) * 2005-01-04 2011-11-04 삼성전자주식회사 이미지 재생방법 및 이를 수행하는 이미지 처리장치
KR100756129B1 (ko) * 2005-06-28 2007-09-05 주식회사 팬택앤큐리텔 디스플레이영역 변화에 따른 유동적 디스플레이 장치 및방법
US7755647B2 (en) 2005-06-28 2010-07-13 Pantech & Curitel Communications, Inc. Flexible display device and method for changing display area
US8120626B2 (en) 2005-06-28 2012-02-21 Pantech Co., Ltd. Flexible display device and method for changing display area
US8319799B2 (en) 2005-06-28 2012-11-27 Pantech Co., Ltd. Flexible display device and method for changing display area
US8767018B2 (en) 2005-06-28 2014-07-01 Pantech Co., Ltd. Flexible display device and method for changing display area
US9495730B2 (en) 2005-06-28 2016-11-15 Pantech Co., Ltd. Flexible display device and method for changing display area
US10810702B2 (en) 2005-06-28 2020-10-20 Pantech Corporation Flexible display device and method for changing display area
WO2007114886A1 (en) * 2006-03-31 2007-10-11 Microsoft Corporation Selective window exclusion for captured content
US7689926B2 (en) 2006-03-31 2010-03-30 Microsoft Corporation Selective window exclusion for captured content

Also Published As

Publication number Publication date
KR100486180B1 (ko) 2005-05-03

Similar Documents

Publication Publication Date Title
US20210076105A1 (en) Automatic Data Extraction and Conversion of Video/Images/Sound Information from a Slide presentation into an Editable Notetaking Resource with Optional Overlay of the Presenter
CN1719399B (zh) 使数字信息与人类感知系统相匹配的系统和方法
Rodríguez et al. Telling stories with data visualization
US20020060680A1 (en) Method for context-preserving magnification of digital image regions
JP2006178966A (ja) ユーザアクセシビリティオプションのパーソナライゼーション
Dias Technology enhanced learning and augmented reality: An application on multimedia interactive books
Rzayev et al. Reading in vr: The effect of text presentation type and location
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
Blenkhorn et al. Screen magnifiers: Evolution and evaluation
Wu et al. Towards accessible news reading design in virtual reality for low vision
Špakov et al. Improving the performance of eye trackers with limited spatial accuracy and low sampling rates for reading analysis by heuristic fixation-to-word mapping
Cheng et al. Smooth gaze: a framework for recovering tasks across devices using eye tracking
KR100486180B1 (ko) 컴퓨터에서 화면을 부분적으로 확대하는 방법 및 그기록매체
US11640200B2 (en) Gaze-contingent screen magnification control
Ouali et al. Architecture for real-time visualizing arabic words with diacritics using augmented reality for visually impaired people
Isenberg et al. Digital tables for collaborative information exploration
Sandnes Lost in OCR-translation: pixel-based text reflow to the rescue: magnification of archival raster image documents in the browser without horizontal scrolling
Blenkhorn et al. Full-screen magnification for windows using DirectX overlays
KR20200069114A (ko) 작가체학습단말기 및 시스템
Johari et al. MyWSL: Malaysian words sign language dataset
Sarabadani Tafreshi et al. RDSpeed: development framework for speed-based adaptation of web content on public displays
Blenkhorn et al. A screen magnifier using “high level” implementation techniques
Krohn et al. Construction of an inexpensive eye tracker for social inclusion and education
Jewitt et al. Screens and the Social Landscape: Digital Design, Representation, Communication and Interaction

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