이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명에서는 터치화면을 구비한 단말기, 이미지 뷰어 등에 있어서, 사용자가 터치화면을 원 포인트 터치로 입력하여 화면에 디스플레이되는 이미지를 확대, 축소, 이동할 수 있는 사용자 인터페이스를 제시한다. 즉, 한 손가락만을 사용하여 터치화면을 통해 이미지의 디스플레이 방식을 제어할 수 있다.
이때, 사용자의 보다 다양한 터치입력을 위해 단말기의 터치모드를 다음과 같이 구분하여 정의한다. 터치모드로서 일반모드, 이미지 확대모드, 확대이미지 이동모드가 있으며, 사용자의 원 포인트 터치입력에 의해 각 터치모드간 전환이 이루어진다.
일반모드는 화면을 터치하여 좌우로 이동함에 따라 이미지 슬라이딩이 이루어지는 터치모드이다. 즉, 현재 이미지의 이전 이미지와 다음 이미지로 이동하여 디스플레이하여 보여준다.
이미지 확대모드는 현재 보여지는 이미지를 확대 또는 축소할 수 있는 터치모드이다. 이 모드에서는 사용자의 터치조작에 따라 이미지의 크기를 변형시켜 디스플레이할 수 있다.
확대이미지 이동모드는 현재 이미지가 확대된 상태에서는 전체 이미지가 모두 화면상에 표시될 수 없으므로, 사용자의 터치조작에 따라 화면상에 보여지는 이미지 영역을 이동시켜 보여줄 수 있는 터치모드이다.
이후, [도 1]과 [도 2]의 순서도를 참조하여 일반모드와 이미지 확대모드에 서의 동작과정을 설명하고 [도 3]의 순서도를 참조하여 확대이미지 이동모드에서의 동작과정을 설명하기로 한다.
[도 1]은 본 발명에 따른 터치화면상의 원 포인트 터치 동작에 의한 이미지 확대, 축소, 이동 방법에서 일반모드와 이미지 확대모드에서의 동작과정을 나타낸 순서도이다.
먼저, 단말기(또는 이미지 뷰어)는 터치화면상에 터치입력이 발생하는지를 실시간으로 감지한다(ST11). 또한, 이후의 단말기 동작에 있어서도 단말기의 전원이 꺼져있거나 특별한 동작을 실행하는 경우가 아니라면 터치입력의 실시간 감지는 계속 유지된다.
사용자가 터치화면을 건드려 터치입력이 발생하는 경우(ST13), 터치모드가 현재 일반모드로 설정되어 있는지를 판단한다(ST15). 일반적으로, 단말기의 초기 터치모드는 일반모드로 설정되어 있는 것이 바람직하다.
그 다음으로, 발생한 터치입력이 터치모드 변환을 위한 동작인지를 판단한다(ST17). 여기에서는 사용자가 터치입력을 접촉된 채로 오래 유지하면 일반모드를 이미지 확대모드로 변환하려는 명령으로 인식한다. 즉, 터치입력이 미리 설정된 기준 시간 이상동안 미리 설정된 영역범위를 벗어나지 않은 접촉상태로 유지되는 상태를 '홀드 입력'이라 정의하여, 터치입력이 '홀드 입력'인 경우에는(ST17) 터치모드를 이미지 확대모드로 변경한다(ST23). 예컨대, 1.5 ~ 2초 정도 터치입력이 정지된 상태로 유지되면 '홀드 입력'으로 인식하도록 설정할 수 있다.
그러나, 터치입력이 '홀드 입력'이 아닌 경우에는 일반모드를 그대로 유지하며, 일반모드에서는 사용자의 터치입력이 이동하면(ST19) 터치입력의 이동 방향에 따라 이미지를 슬라이딩처리하여 이전 이미지 또는 다음 이미지로 이동한다(ST21). 예컨대, 사용자가 화면을 터치하여 좌측으로 이동하면 이전 이미지로 이동하고 우측으로 이동하면 다음 이미지로 이동하도록 설정할 수 있다.
만약, 아무 터치입력이 없는 경우라면 일반모드 상태로 계속 유지되어 사용자가 이미지를 슬라이딩처리할 수 있는 상태로 되돌아간다.
일반모드 상태에서 사용자가 터치입력을 '홀드 입력'으로 입력하여 터치모드가 이미지 확대모드로 변경되었거나(ST23) 처음의 현재 터치모드가 이미지 확대모드였던 경우라면(ST33) 이후의 동작은 이미지 확대모드의 동작방식에 따라 이루어진다.
이미지 확대모드에서는 일반모드로 진행하기 위한 터치동작과 확대이미지 이동모드로 진행하기 위한 터치동작을 각각 정의하여 각 터치동작에 따라 터치모드를 변경한다.
먼저, 이미지 확대모드에서 일반모드로 복귀하기 위한 터치동작으로서 터치입력이 터치화면상의 일정 영역 밖으로 벗어나면 일반모드로 변경되도록 설정할 수 있다. 예컨대, 사용자가 최대한 아래쪽으로 터치입력을 이동시킴으로써 이를 일반모드 복귀 동작으로 인식하도록 처리할 수 있다.
또한, 이미지 확대모드에서 터치입력의 상하이동에 따라 이미지의 확대 축소가 이루어지는 경우라면 확대 비율 또는 축소 비율이 어느 범위를 벗어날 경우에 일반모드로 복귀하도록 설정할 수도 있다.
그 밖에도 터치입력이 터치화면으로부터 분리될 경우에 일반모드로 복귀하도록 설정할 수 있다. 이 경우에는 후술하는 확대이미지 이동모드를 고려하지 않고 일반모드와 이미지 확대모드만으로 구성된 예에 해당된다.
이상 언급한 방식에 의해 이미지 확대모드로부터 일반모드로의 복귀동작이 발생하면(ST25) 터치모드를 일반모드로 변경한 후에(ST27) 일반모드의 시작단계(ST17)로 진행한다.
이미지 확대모드에서 확대이미지 이동모드로 변경되는 방식으로는 사용자가 터치입력을 잠시 분리함으로써 이루어질 수 있다. 즉, 현재 터치모드가 이미지 확대모드인 상태에서 터치입력이 사라지는 것이 감지되면(ST29) 터치모드를 확대이미지 이동모드로 변경처리한 후(ST31) 확대이미지 이동모드의 시작단계(ST39)로 진행한다.
이때, 이미지 확대모드에서 이미지의 변형이 이루어진 뒤에 확대이미지 이동모드로 진행하는 것이 바람직하므로, 터치입력의 사라짐이 이미지의 확대 또는 축소의 진행을 수반하지 않는 경우에는(ST30) 일반모드로 진행하고(ST27) 터치입력의 사라짐이 이미지의 확대 또는 축소의 진행을 수반하는 경우에는(ST30) 이미지 확대모드로 진행하도록(ST31) 구현할 수도 있다.
이미지 확대모드에서는 터치입력의 이동이 발생하면(ST35) 터치입력의 이동 방향에 따라 이미지를 확대 및 축소하여 디스플레이한다(ST37). 터치입력의 이동 방향에 따른 이미지의 확대/축소에 대해서는 이후 [도 2]에서 보다 상세히 설명하 기로 한다.
[도 2]는 [도 1]에서 이미지 확대/축소 단계(ST37)의 동작과정을 보다 상세히 나타낸 순서도이다.
앞서 [도 1]에서 터치모드가 이미지 확대모드이면 사용자에 의한 터치입력의 이동이 발생하는지를 판단하여(ST35) 터치입력의 이동이 발생하면 그에 따라 이미지를 확대하거나 축소한다(ST37).
[도 2]에서는 터치입력이 위쪽으로 이동하면 이미지를 확대하고 아래쪽으로 이동하면 이미지를 축소하는 실시예에 대하여 나타내고 있다.
먼저, 터치입력이 화면 상단방향으로 이동하는지를 판단하고(ST371) 터치입력이 화면 상단방향으로 이동할 경우에는 현재 보여지는 이미지를 확대하여 디스플레이한다(ST374).
그러나, 터치입력이 화면 하단방향으로 이동하면(ST372) 이미지를 축소하여 디스플레이한다(ST373).
이미지의 확대 및 축소가 이루어진 후에는 이미지 확대모드의 초기단계(ST25)로 되돌아간다.
이후, 이미지의 확대비율이 일정 비율 이상 커지거나 축소비율이 일정 비율 이하로 작아지면 이를 일반모드로 복귀하려는 동작으로 인식하여(ST25) 이미지 확대모드를 벗어나도록 설정할 수도 있다. 그 밖에도 일반모드로 복귀하려는 동작을 다양하게 설정할 수 있음은 앞서 [도 1]에서 설명한 바와 같다.
[도 3]은 [도 1]에서 터치모드를 확대이미지 이동모드로 변경(ST31)한 이후의 동작 과정을 나타낸 순서도이다.
터치모드가 확대이미지 이동모드이면 화면상의 이미지가 확대된 상태에서 사용자의 조작에 의해 이미지의 표시영역을 이동시킬 수 있다.
먼저, 확대이미지 이동모드에서 사용자의 터치입력이 일정시간 이상 지속되는 '홀드 입력'인지를 판단한다(ST39). 여기에서, '홀드 입력'은 터치모드를 확대이미지 이동모드로부터 이미지 확대모드로 복귀하려는 동작으로 인식된다.
사용자가 '홀드 입력'으로 터치입력을 유지한 경우에는 터치모드를 이미지 확대모드로 변경한 후에 이미지 확대모드 초기단계(ST25)로 되돌아간다.
그러나, '홀드 입력'이 아닌 경우에는 확대이미지 이동모드상에서의 터치동작으로 파악하여 터치입력의 이동방향을 체크한다(ST43). 그리고, 터치입력의 이동방향에 따라 터치화면상에 보이는 확대된 이미지의 표시영역을 이동시켜 디스플레이한다. 일반적으로는 터치입력의 상하좌우 이동방향과 동일한 방향으로 이미지를 이동시키는 것이 바람직하다.
즉, [도 3]에 제시된 바와 같이 터치입력의 상하좌우 이동방향에 따라 확대이미지를 이동시킨다(ST45). 이후에는 확대이미지 이동모드의 초기단계(ST39)로 돌아가서 사용자의 터치입력에 따라 터치모드를 변경하거나 확대이미지를 이동하는 동작을 계속 진행한다.
[도 4]는 터치화면상에서 원 포인트 터치로 이루어지는 슬라이딩, 홀드 입력, 확대, 이동에 대한 터치동작을 나타낸 예시도이다.
슬라이딩(sliding)은 사용자의 터치입력이 좌우로 이동함에 따라 이미지를 슬라이딩시켜 이전 이미지 또는 다음 이미지를 디스플레이하는 동작으로서, 터치모드가 일반모드로 설정되어 있을 경우 이와 같이 동작이 이루어진다.
홀드(hold) 입력은 사용자가 터치입력 상태로 좌표의 움직임 없이 누름이 지속되는 상태로서, 일반모드에서 이미지 확대모드로 변경하거나 확대이미지 이동모드에서 이미지 확대모드로 변경할 때 사용된다.
확대(zooming)는 이미지 확대모드에서 사용자의 터치입력의 상하 이동에 따라 이미지를 확대 또는 축소하는 동작이다. 또는, 사용자가 터치입력에 의해 원을 그리는 방향에 따라(시계 방향/반시계 방향) 이미지를 확대하거나 축소할 수도 있다.
이동(moving)은 확대(zooming) 동작을 통해 이미지가 확대된 후 확대이미지 이동모드에서 터치입력의 상하좌우 이동에 따라 디스플레이되는 이미지의 부분영역을 이동시켜 보여주는 동작이다.
[도 5]는 원 포인트 터치로 이루어지는 각 터치모드별 동작과 터치모드간 이동방식을 설명한 상태도이다.
앞서 [도 1] ~ [도 3]에서 설명한 바와 같이 각 터치모드는 일반모드, 이미지 확대모드, 확대이미지 이동모드로 구분된다.
각 모드간 변환은 모두 사용자의 원 포인트 터치에 의해 이루어지며, 각 모드 내에서의 이미지 변환 역시 사용자의 원 포인트 터치만으로 이루어질 수 있다.
각 터치모드에서의 동작, 터치모드간 변환을 위한 사용자의 원 포인트 터치 동작을 다음과 같이 정리해볼 수 있다. 여기에서 제시된 터치방향, 터치동작에 따른 제어는 대표적인 실시예를 제시한 것으로서 이 외에도 터치방식을 조금씩 변형하여 실시하는 것이 가능하다.
■ 일반모드
사용자의 좌우 터치이동에 따라 이미지의 슬라이딩이 이루어진다.
터치입력이 없으면 이미지의 슬라이딩을 멈추고 일반모드에서 터치입력 발생을 대기하는 상태로 되돌아간다.
■ 이미지 확대모드
사용자의 상하 터치이동에 따라 이미지의 확대, 축소가 이루어진다.
■ 확대이미지 이동모드
사용자의 상하좌우 터치이동에 따라 확대이미지의 이동이 이루어진다.
■ 일반모드 → 이미지 확대모드
'홀드 입력'이 발생하면 이미지 확대모드로 변경된다.
■ 이미지 확대모드 → 일반모드
터치입력이 최대한 아래쪽으로 이루어지면 일반모드로 변경된다.
(그 밖에도 확대, 축소 비율이 일정 범위를 넘어서거나, 또는 이미지의 확대/축소없이 터치입력이 사라지거나, 또는 확대이미지 이동모드가 없는 경우에는 단 순히 터치입력이 사라짐에 의해 일반모드로 변경되도록 설정할 수도 있다.)
■ 이미지 확대모드 → 확대이미지 이동모드
이미지의 확대, 축소가 진행된 후에 터치입력이 사라지면 확대이미지 이동모드로 변경된다.
■ 확대이미지 이동모드 → 이미지 확대모드
'홀드 입력'이 발생하면 이미지 확대모드로 변경된다.
[도 6]과 [도 7]에서는 보다 한정된 지원 환경에서도 이미지 확대 및 이동이 원활하게 이루어지는 방식을 제시하고 있다.
[도 6]은 [도 3]의 확대이미지 이동 단계(ST45)에서 2개의 출력버퍼를 이용하여 이미지를 확대하여 디스플레이하는 과정을 나타낸 순서도이다.
이 경우에는 이미지의 확대, 이동이 연속적으로 이루어지는 대신 일정하게 분할된 단위에 따라 이루어진다. 대신에 보다 효율적으로 내부 처리가 가능하므로 한정된 메모리와 하드웨어 자원 하에서도 속도의 저하없이 이미지의 확대, 이동이 이루어질 수 있다.
일단, 단말기 내에는 최소한 2개의 출력버퍼와 1개의 디코딩 버퍼가 구비되어 있으며, 다음 과정을 통해 확대이미지의 이동 및 디스플레이가 이루어진다.
먼저, 전체 이미지를 복수개의 영역으로 분할한다(ST451). 이 과정은 앞서 이미지 확대모드에서 이미지를 확대하는 과정에서 미리 처리될 수 있다.
그 다음으로, 분할된 영역 중 확대하려는 영역을 확대 스케일링하여 제 1 출 력버퍼에 저장한 후(ST452), 제 1 출력버퍼에 저장된 이미지를 화면상에 디스플레이한다(ST453).
이상의 이미지 분할 및 확대 스케일링은 확대 배율에 따라 이루어질 수 있다. 예컨대, 이미지를 4배로 확대한 경우라면(가로, 세로 2배씩 확대) 전체 이미지를 4개 영역으로 분할하고 그 중에서 선택된 부분을 4배 확배하면 화면 크기의 이미지가 생성된다. 즉, 4배 확대된 부분 이미지를 제 1 출력버퍼에 저장한다.
그리고, 확대이미지 이동모드 상태에서 사용자의 터치입력이 발생하면 터치입력의 이동방향을 감지하여(ST454), 터치입력의 이동방향에 위치한 이미지 영역을 확대 스케일링하여 제 2 출력버퍼에 저장한다(ST455).
예컨대, 4분할된 전체 이미지 중 좌상의 부분 이미지가 제 1 출력버퍼에 저장된 상태에서 사용자가 터치입력을 우측아래 대각선 방향으로 이동시킬 경우 단말기가 터치입력의 이동방향이 우하방향임을 감지하여 4분할 중 우하에 위치한 부분 이미지를 4배 확대 스케일링하여 제 2 출력버퍼에 저장한다.
이후, 제 2 출력버퍼의 내용을 터치화면상에 디스플레이함으로써(ST456) 화면상의 이미지 전환이 이루어지고, 확대 이미지가 이동되는 효과를 가져온다.
[도 7]은 2개의 출력버퍼를 이용하여 이미지가 확대된 상태에서 이동이 이루어지는 과정을 설명한 예시도로서, 이는 [도 6]의 과정을 보다 구체적으로 설명한 것이다.
디코딩 버퍼에는 전체 이미지가 저장되는데, 이 중 확대하고자 하는 부분을 스케일러(scaler)를 사용하여 최대 4배 확대하여 하나의 출력버퍼에 저장하고 이를 화면상에 디스플레이한다.
또한, 확대이미지 이동모드에서 사용자가 터치입력을 이동시킨 경우에는 다른 하나의 출력버퍼에 이동시킨 부분 이미지를 4배 확대하여 저장한다.
그런 후에 출력버퍼간에 버퍼 스위칭이 이루어져 화면상에 디스플레이되는 이미지가 전환된다.
이러한 방식을 통해 확대 이미지의 이동을 보다 쉽게 구현할 수 있는 장점이 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.