The technology described in this patent document relates generally to computer-implemented graphical user interfaces and image processing. More particularly, systems and methods are provided for navigating an image using zoom operations.
Various software applications provide the capability to “zoom in” to magnify portions of a displayed image or to “zoom out” to show a broader view of the displayed image. However, the mechanisms typically provided to control these zoom operations often make it difficult to navigate from one zoomed view of an image to another while maintaining context for the image.
In accordance with the teachings described herein, systems and methods are provided for navigating an image using zoom operations. A zoomed view of the image may be displayed on a display screen. In response to receiving a first user input, the zoomed view of the image is replaced on the display screen with a zoom selection view of the image, the zoom selection view including a base view of the image with a zoom selection window enclosing a portion of the base view of the image. A second user input may be received to move the zoom selection window in the zoom selection view to identify a portion of the image to be zoomed. A new zoomed view may then be displayed on the display screen, in place of the zoom selection view, that includes the portion of the image identified by the zoom selection window.
In operation, the zoom engine 110 causes the image data 112 to be displayed on a viewing screen in one of a plurality of view modes 114, 116, 118 based on one or more user inputs 120, 122. In the illustrated example 100, the zoom engine 110 receives one or more view control inputs 120 that cause the image data 112 to be displayed in either a base view 114, a zoom selection view 116 or a zoomed view 118. In the base view 114, the image data 112 is displayed with a predefined amount of zoom. For instance, the base view 114 may be a display of the image at 100% zoom (i.e., with no magnification or reduction.) In another example, the base view 114 may be a fully zoomed-out display of the image, e.g., with the full image being displayed on the screen.
The zoom selection view 116 includes the base view 114 of the image with an overlaid zoom selection window that encloses a portion of the displayed image. The zoom selection window may be manipulated based on one or more zoom selection inputs 122 to select a portion of the base view 114 to be zoomed. The zoom selection input(s) 122 may, for example, be used to move and/or resize the zoom selection window within the zoom selection view 116.
The zoomed view 118 includes a magnified view of the portion of the image data 112 selected in the zoom selection view 116. The zoomed view 118 may, for example, be displayed by the zoom engine 110 upon receiving a view control input 120 from within the zoom selection view 118.
The zoom engine 110 enables a user to switch between the view modes 114, 116, 118 based on the zoom selection input(s) 122. The different view modes 114, 116, 118 may, for example, be displayed on the same screen area of a display device such that only a single one of the view modes 114, 116, 118 is displayed at any given time. The zoom selection input(s) 112 may provide a user-friendly way of switching between view modes 114, 116, 118, such that the user may toggle between different modes 114, 116, 118 to easily change the zoomed area of the image. In this way, the user is provided with a convenient way of navigating the image while utilizing the available screen area for each of the viewing modes 114, 116, 118, which may be particularly advantageous for devices with smaller viewports, such as a smart phone or tablet computer.
The zoom engine 110 shown in
Upon entering the zoom mode 216, parameters for an initial zoom selection window are established at 222. The initial zoom selection parameters may, for example, define an initial size and/or placement of the zoom selection window within the zoom select view 212. As illustrated, the parameters for the initial zoom selection window may be set based on manual or automatic configuration settings. For example, a user may manually define and store one or more default zoom selection window parameters that are implemented upon entering zoom mode 216. In other examples, the initial parameters for the zoom selection window may be automatically established based on one or more factors, such as a selection state triggered by data brushing, or by statistical analyses used to find clusters, peaks, outliers or other points of interest in the image data. Once the initial zoom selection parameters are established, the method enters the zoom selection view 212.
From the zoom selection view 212, the method may receive a zoom instruction 224 that causes the portion of the base image enclosed in the zoom selection window to be magnified in the zoomed view 214. In addition, the zoom selection window may be moved and/or resized 224 from within the zoom selection view to enclose a different portion of the base view for magnification in the zoomed view 214. From within the zoomed view 214, a zoom selection instruction 228 may be received causing the method to return to the zoom selection view 212.
The inputs 218, 220, 224, 226, 228 illustrated in
To help illustrate the method of
Prior to entering the zoom selection view or the zoomed view from the base view, the application may be configured to intelligently suggest a portion of the image to be zoomed based on some characteristic of the displayed information. For example,
If the suggested portion of the image is selected for zooming (e.g., by selecting the zoom icon 310), then the application may transition to the zoom selection view (e.g., as shown in
An example of a zoom selection view 500 is illustrated in
In another example, a graphical interface to the zoom selection view 500 may impose one or more restrictions on how the zoom selection window 510 may be modified. For instance, in the case of a bar graph, the zoom selection view 500 may automatically keep the zoom selection window 510 aligned with the baseline and prevent scaling of the response axis.
From the zoom selection view 500, a user input may be received to transition to a zoomed view of the portion of the base image enclosed in the zoom selection window 510. For instance, in the illustrated example a user may select a graphical icon 520 from the zoom selection view 500 to transition to the zoomed view. A graphical interface to the zoom selection view 500 may also provide the user with an input to return to the base view 400.
An example of a zoomed view 600 is illustrated in
As illustrated in the examples shown in
In certain embodiments, the system and method may provide a user friendly series of inputs to enable a user to quickly transition back and forth between the zoom selection view and the zoomed view. One such embodiment is illustrated in
From the zoom view 714, the user may press and hold a mouse button (at 720) to transition to the zoom selection view 722. The method 700 will remain in the zoom selection view 722 as long as the mouse button remains pressed. While in zoom selection view 722, the user may move the zoom selection window (at 724) by dragging the mouse (at 726) while the mouse button remains pressed. Once the mouse button is released (at 728), the area to be zoomed is modified (at 730) to account for any repositioning of the zoom selection window, and the method 700 returns to the zoomed view 714.
From the base view 1110, the user may interact with a zoom control input (at 1130), such as a graphical zoom scroll bar, to adjust the zoom level of the base view (at 1132). As shown, in this example the zoom level may be adjusted directly from the base view 1110 without entering the zoom selection view 1120. However, to provide more control over the portion of the base image to be zoomed, the user may also enter the zoom selection view 1120 by selecting a second zoom input at 1134. The second zoom input 1134 may, for example, be selected by pressing and holding a mouse button, selecting a graphical icon, pressing a specialized zoom key, or by some other suitable input mechanism.
Upon receiving the zoom input 1134, the method determines at 1136 whether the base view 1110 is currently fully zoomed to its extends. In other words, the method determines if the base view 1110 is currently in a zoomed state. If the base view is zoomed to extents (i.e., not currently magnified), then the method proceeds to 1138. Otherwise, if the base view is currently zoomed, the method proceeds to 1140.
At either 1138 or 1140, the method determines if any of the image data has been selected or suggested for zooming. For instance, as described above with reference to
If no particular image data has been selected for zooming, then the method proceeds either from 1138 to 1144 (if zoomed to extents) or from 1140 to 1146 (if already zoomed). If the base view is already zoomed, then the zoom selection window is left to enclose the currently zoomed portion of the image data at 1146. If the base view is zoomed to extents, then, at 1144, the zoom selection window is set to a predetermined size and position, for example based on the type of image. For instance, the zoom selection window may be set to 50% of its maximum size or to a predetermined minimum size. The zoom selection window may also be positioned based on the type of image. For example, if the image is a graph on an x-y axis, then the zoom selection window may be initially aligned with its left-most edge along the y axis. As a default, the method may, for example, align the zoom selection window at the center of the base view.
Once the size and position of the zoom selection window is set at 1142, 1144 or 1146, the zoom selection view 1120 is displayed. From the zoom selection view, the user may either adjust the size and/or position of the zoom selection window (at 1148, 1150 or 1152), accept the size and position of the zoom selection window for zooming (at 1154), or escape out of the zoom selection view (at 1156) and return to the base view 1110.
At 1148, the user may interact with a zoom control input, such as a zoom scroll bar, to increase or decrease the amount of magnification inside of the zoom selection window. At 1150, the user may resize and/or reposition the zoom selection window, for example by selecting and dragging an edge or corner of the window or moving the entire window to a new position on the base image. At 1152, the user may draw a new zoom selection window to replace the currently displayed window. For example, a user interface may enable the user to draw a box on the displayed base image that replaces the current zoom selection window. Any adjustments made to the zoom selection window at 1148, 1150, or 1152 are implemented at 1158 so that the adjusted zoom selection window is displayed in the zoom selection view 1120.
Once the user is satisfied with the size and position of the zoom selection window, a zoom input may be entered at 1154, causing the zoom state of the base image to be adjusted at 1132 to zoom in on the portion of the image enclosed in the zoom selection window.
A disk controller 1860 may interface one or more disk drives to the system bus 1852. These disk drives may be external or internal floppy disk drives such as 1862, external or internal CD-ROM, CD-R, CD-RW or DVD drives such as 1864, or external or internal hard drives 1866.
Each of the element managers, real-time data buffer, conveyors, file input processor, database index shared access memory loader, reference data buffer and data managers may include a software application stored in one or more of the disk drives connected to the disk controller 1860, the ROM 1856 and/or the RAM 1858. Preferably, the processor 1854 may access each component as required.
A display interface 1868 may permit information from the bus 1852 to be displayed on a display 1870 in audio, graphic, or alphanumeric format. Communication with external devices may occur using various communication ports 1872.
In addition to the standard computer-type components, the hardware may also include data input devices, such as a keyboard 1873, or other input device 1874, such as a microphone, remote control, pointer, mouse and/or joystick.
This written description uses examples to disclose the invention, including the best mode, and also to enable a person skilled in the art to make and use the invention. The patentable scope of the invention may include other examples. Additionally, the methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem. The software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform the methods and operations described herein. Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein.
The systems' and methods' data (e.g., associations, mappings, data input, data output, intermediate data results, final data results, etc.) may be stored and implemented in one or more different types of computer-implemented data stores, such as different types of storage devices and programming constructs (e.g., RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.). It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.
The computer components, software modules, functions, data stores and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand.
It should be understood that as used in the description herein and throughout the claims that follow, the meaning of “a,” “an,” and “the” includes plural reference unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the claims that follow, the meaning of “in” includes “in” and “on” unless the context clearly dictates otherwise. Finally, as used in the description herein and throughout the claims that follow, the meanings of “and” and “or” include both the conjunctive and disjunctive and may be used interchangeably unless the context expressly dictates otherwise; the phrase “exclusive or” may be used to indicate situation where only the disjunctive meaning may apply.
This application claims priority to U.S. Provisional Patent Application No. 61/562,108, titled “Integrated Overview Zoom”, filed on Nov. 21, 2011, the entirety of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61562108 | Nov 2011 | US |