# Patent

## Title
Method and system for zoomable attachment handling on a portable electronic device

## Abstract

A method for viewing a full image of a server stored original attachment on a portable electronic device including: building a graph structure within the server representing a map of the original image, downloading and displaying a re-sized image from the server to the portable electronic device, the original image exceeding an image size limit of the portable electronic device indicative of screen size of the portable electronic device, dividing the original image into four individual quadrants and calculating width and height parameters of the four individual quadrants, sending a request from the portable electronic device to the server to enlarge the image displayed on the device based on the width and height parameters, the request including the image size limit, retrieving and traversing the graph structure within the server to locate a separate image component constructed for the image size limit, collecting image binary data from the separate image component and modifying the image binary data based on the width and height parameters to create the full image of the original image, downloading each of the four resized quadrants to the attachment viewer and assembling the resized quadrants to display the full image of the original image on the portable electronic device.

## Background
FIELD
The present application relates to displaying attachments on a portable electronic device and, in particular, a method for requesting and viewing an attachment image on a portable electronic device.
BACKGROUND
Wireless technology has made it possible for email messages to be received and displayed by various portable electronic devices including Personal Digital Assistants (PDAs), for example. Sending email messages including attachments, such as photographs or scanned documents, is becoming increasingly popular, however, most attachments are formatted for a rich desktop or printer experience and generally require a desktop PC with a large screen display for proper viewing. As such, viewing these attachments on the small screens of most portable electronic devices presents a challenge.
Currently, when a user makes a request to view an attachment, the request is received at a server where the attachment is scaled down to fit on the portable electronic device screen and then returned to the portable electronic device. When viewing high resolution attachments, such as scanned documents, for example, details of the scaled down image are often difficult to distinguish. In order to view text or other details of the scaled down image, the user may enlarge a desired portion by selecting an appropriate menu option. Each time the user requests enlargement of an area of the scaled down image, the request is sent to the server and a higher resolution image of the selected area is returned to the portable electronic device. Often, the enlargement process must be performed multiple times before the user is able to view the details of the entire scanned document.



BRIEF DESCRIPTION OF THE DRAWINGS
The embodiments will be better understood with reference to the following figures in which like numerals denote like parts and in which:
FIG. 1 is a schematic diagram of a wireless communication system;
FIG. 2 is a block diagram of components of a portable electronic device according to an embodiment;
FIG. 3 is a flowchart depicting device side operation for viewing an attachment on the portable electronic device of FIG. 2;
FIG. 4 is a screen shot of the portable electronic device of FIG. 2;
FIG. 5 is another screen shot of the portable electronic device of FIG. 2;
FIG. 6 is a flowchart depicting server side operation for viewing an attachment on the portable electronic device corresponding to the device side flowchart of FIG. 3.



DETAILED DESCRIPTION
In one aspect there is provided a method for viewing a full image of a server stored original attachment on a portable electronic device including: building a graph structure within the server representing a map of the original image, downloading and displaying a re-sized image from the server to the portable electronic device, the original image exceeding an image size limit of the portable electronic device indicative of screen size of the portable electronic device, dividing the original image into four individual quadrants and calculating width and height parameters of the four individual quadrants, sending a request from the portable electronic device to the server to enlarge the image displayed on the device based on the width and height parameters, the request including the image size limit, retrieving and traversing the graph structure within the server to locate any corresponding image component for the original image and, upon locating the corresponding image component iterating through attributes of the image component to determine if a separate image component has been constructed for the image size limit, in the event that the separate image component has not been constructed then collecting image binary data from the original image within the server, constructing a new image component from the binary data and caching the new image component as an attribute of the original image in the graph structure, collecting further image binary data from one of either the new image component or the separate image component and modifying the further binary data based on the width and height parameters to provide four resized quadrants of the original image, downloading each of the four resized quadrants to the attachment viewer and assembling the resized quadrants to display the full image of the original image on the portable electronic device.
In another aspect there is provided a method for viewing a full image of a server stored original attachment on a portable electronic device including: building a graph structure within the server representing a map of the original image, downloading and displaying a re-sized image from the server to the portable electronic device, the original image exceeding an image size limit of the portable electronic device indicative of screen size of the portable electronic device, dividing the original image into four individual quadrants and calculating width and height parameters of the four individual quadrants, sending a request from the portable electronic device to the server to enlarge the image displayed on the device based on the width and height parameters, the request including the image size limit, retrieving and traversing the graph structure within the server to locate a separate image component constructed for the image size limit, collecting image binary data from the separate image component and modifying the image binary data based on the width and height parameters to create four resized quadrants of the original image, downloading each of the four resized quadrants to the attachment viewer and assembling the resized quadrants to display the full image of the original image on the portable electronic device.
In another aspect there is provided a portable electronic device including: an attachment viewer stored on the portable electronic device, the attachment viewer for dividing an original image attachment into four quadrants and requesting resized quadrants to assemble and display on the portable electronic device and an attachment server in communication with the attachment viewer, the attachment server for building a graph structure representing a map of the original image attachment and sending the resized quadrants to the attachment viewer, wherein the resized quadrants when assembled appear as a single seamless image on a display of the portable electronic device.
Referring now to FIG. 1, a communication system 10 for a portable electronic device 12 is generally shown. The portable electronic device 12 is operable to effect communications over a radio communications channel and communicates with a base station (not shown) while located within a coverage area that is defined by the base station. The base station is part of a wireless network that is in communication with the Internet 14. Data is delivered to the portable electronic device 12 via wireless transmission from the base station. Similarly, data is sent from the portable electronic device 12 via wireless transmission to the base station.
It will be appreciated that the portable electronic device 12 is movable within the coverage area and can be moved to coverage areas defined by other base stations. Further, as will be understood by one of ordinary skill in the art, wireless networks include GSM/GPRS, CDPD, TDMA, iDEN Mobitex, DataTAC networks, EDGE or UMTS and broadband networks such as Bluetooth and variants of 802.11.
A server 18 handles wireless client requests from the portable electronic device 12. A firewall, or proxy server, 16, is provided between the server 18 and the Internet 14. The server 18 further operates as an attachment server, which communicates with an email client and an attachment viewer of the portable electronic device 12 to allow a user to view attachments that are received in email messages. While only one server 18 is shown for illustration purposes, a person skilled in the art will understand that the attachment server may alternatively be a separate server.
Referring now to FIG. 2, a block diagram of certain components within the portable electronic device 12 is shown. In the present embodiment, the portable electronic device 12 is based on the computing environment and functionality of a wireless personal digital assistant (PDA). It will be understood, however, that the portable electronic device 12 is not limited to wireless personal digital assistants. Other portable electronic devices are possible, such as smart telephones, and laptop computers.
The portable electronic device 12 is based on a microcomputer including a processor 20 connected to a read-only-memory (ROM) 22 that contains a plurality of applications executable by the processor 20 that enables each portable electronic device 12 to perform certain functions including, for example, PIN message functions, SMS message functions and cellular telephone functions. The processor 20 is also connected to a random access memory unit (RAM) 24 and a persistent storage device 26 which are responsible for various non-volatile storage functions of the portable electronic device 12. The processor 20 receives input from various input devices including a keypad 28. The processor 20 outputs to various output devices including an LCD display 30. A microphone 32 and phone speaker 34 are connected to the processor 20 for cellular telephone functions. The processor 20 is also connected to a modem and radio device 36. The modem and radio device 36 is used to connect to wireless networks and transmit and receive voice and data communications through an antenna 38. A content store 40, which is generally a file storage system for the portable electronic device 12, is also provided.
Referring to FIG. 3, a method for viewing an attachment on portable electronic device 12 according to an embodiment is generally shown. First (step 42), the attachment viewer displays a resized image of the attachment on the display 30 of portable electronic device 12. An example of a resized image 60 as it appears on the display 30 is shown in FIG. 4. The resized image 60 corresponds to a first page of a scanned document that the portable electronic device 12 received in an email message in TIFF format. As shown, the text of the resized image 60 is difficult to read due to the small size thereof.
Prior to step 42, the attachment server performs the resize operation on the original image and downloads the resized image to the device 12. In order to perform the resize operation, the attachment server first builds a Document Object Model (DOM) by parsing the attachment document. In this manner, a graph structure is built within the server representing a map of the original image. The original image is then resized based on the requesting device image size limit, or device screen size width and height (in pixels). DOM structure is disclosed in United States Patent Application Nos. 2006/0055693 and 2002/0161796, which are herein incorporated by reference.
At step 44, the attachment viewer determines if the original image width is greater than the device display width and/or if the original image height is greater than the device display height. If one or both of the, original image width and original image height are greater than the display width and display height, respectively, then the attachment viewer moves to step 46 and displays a “full image” option in an attachment viewer menu 62, which is shown in FIG. 4. If both the width and height of the original image are less than those of the device display, the attachment viewer returns to step 42, the execution logic of FIG. 3 is terminated and the “full image” option does not appear in the attachment viewer menu 62.
As indicated at step 50, if the user invokes the “full image” option from the menu 62 (step 48), the attachment viewer first determines if a full image for the particular attachment was previously requested from the attachment server. Previously requested full images are stored locally on the portable electronic device 12 in the content store 40. Therefore, the attachment viewer searches the content store 40 and if corresponding full image data is available for the requested image, the attachment viewer displays the full image, as indicated at step 56.
If no corresponding full image data is found, the attachment viewer requests the “full image” from the attachment server. The original image is divided into four quadrants, or tiles, by the attachment viewer with each quadrant representing approximately 1⁄4 of the original image. The request that is sent to the attachment server includes the device screen size as well as calculated width and height parameters of each of four individual quadrants of the original image, as indicated at step 52. If the user does not invoke the “full image” option, the attachment viewer returns to step 42 and simply continues to display the resized image.
If the attachment server successfully resizes each of the four quadrants of the attachment image, the quadrants are returned to the attachment viewer, assembled together and displayed on display 30 of the portable electronic device 12 to provide the appearance of a single image, as indicated at step 56. At step 57, the quadrant data is saved in the content store 40 and then the execution logic of FIG. 3 is complete. If the attachment server is unable to execute the “full image” option, an error code is displayed instead, as indicated at step 58.
Successful execution of the “full image” option results in an image being displayed in the attachment viewer that is larger and has a higher resolution than the image that is displayed at step 42. An example of a larger, higher resolution full image 64 is shown in FIG. 5. Once the full image has been displayed, image manipulation operations are available to the user. The image appears seamless on the display 30 and movement between quadrants is undetectable by the user. Image manipulation operations include zoom, pan, rotate, enhance and save, for example. These operations are performed in a manner that is known in the art and generally include using a track wheel and arrow key, for example, or another selection device of the portable electronic device 12.
Referring now to FIG. 6, server side operation for the method for viewing an attachment on portable electronic device 12 of FIG. 3 is generally shown. At step 66, the attachment server receives the “Full Image” request from the attachment viewer of the portable electronic device 12. At step 68, the attachment server extracts the device screen size (DSS) and calculated width and height parameters of each quadrant from the attachment viewer request. The attachment server then retrieves the DOM structure for the attachment from in-memory document DOM cache, as indicated at step 70. Once the DOM has been retrieved, the attachment server traverses through the DOM structure to determine the corresponding image component in the DOM for that image, as indicated at step 72. At step 74, the attachment server iterates through the attributes of the corresponding image component to determine if a separate image component specifically for that screen size has already been constructed. The separate image component contains the same graphic information as the original image but is usually of a smaller size than the original image (generally less than or equal to the device screen size) and thus consumes much less memory (usually in ratio of 1:15 to 1:20).
If the separate image component does not exist, the attachment server collects the image binary data from the original image component in memory, as indicated at step 76, and constructs a new image component from the binary data, as indicated at step 78. At step 80, the attachment server caches the DSS image component as an attribute of the original image component in the DOM structure. The DSS binary image data is collected at step 82 and then tailored to create new binary image data based on the calculated width and height parameters of each of the four quadrants and the new binary image data is returned to the attachment viewer of the portable electronic device 12, as indicated at step 84.
In operation, the user of the portable electronic device 12 receives an email message having an attachment and opens the attachment in the attachment viewer. The attachment appears as shown in FIG. 4 with details that are difficult for the user to distinguish. If the original attachment image is larger than the display 30 of the portable electronic device 12, the “full image” option is available in the attachment viewer menu 62. The user then selects the “full image” option and if the “full image” option has not been previously requested for this particular image, the attachment viewer sends a request to the attachment server to provide a full image. The image is divided into four quadrants and the attachment viewer request includes width and height parameters for each of the four quadrants that are calculated by the attachment viewer. The attachment server, upon receiving the attachment viewer request, constructs four new enlarged quadrants of the original image and returns the four quadrants to the attachment viewer. The quadrants are then assembled together and the full image is presented on display 30 and saved in the content store 40 of the portable electronic device 12.
A specific embodiment of the present embodiment has been shown and described herein. However, modifications and variations may occur to those skilled in the art. For example, although the portable electronic device 12 has been described having cellular telephone capabilities, the described embodiment is not limited to portable electronic devices having both cellular telephone and email capabilities. A portable electronic device having email capabilities but not cellular telephone capabilities may also be used. All such modifications and variations are believed to be within the sphere and scope of the present embodiment.

## Claims

1. A method for viewing a full image of a server stored original attachment on a portable electronic device comprising:
building a graph structure within said server representing a map of said original image;
downloading and displaying a re-sized image from said server to said portable electronic device, said original image exceeding an image size limit of said portable electronic device indicative of screen size of said portable electronic device;
dividing said original image into four individual quadrants and calculating width and height parameters of said four individual quadrants;
sending a request from the portable electronic device to the server to enlarge the image displayed on said device based on said width and height parameters, said request including said image size limit;
retrieving and traversing said graph structure within the server to locate any corresponding image component for said original image and, upon locating said corresponding image component iterating through attributes of the image component to determine if a separate image component has been constructed for said image size limit;
in the event that said separate image component has not been constructed then collecting image binary data from said original image within said server, constructing a new image component from said binary data and caching said new image component as an attribute of the original image in said graph structure;
collecting further image binary data from one of either said new image component or said separate image component and modifying said further binary data based on said width and height parameters to provide four resized quadrants of said original image;
downloading each of said four resized quadrants to said attachment viewer; and
assembling said resized quadrants to display said full image of said original image on said portable electronic device.

2. A method as claimed in claim 1, wherein an original image width exceeds a width of said image size limit and an original image height exceeds a height of said image size limit.

3. A method as claimed in claim 2, further comprising generating a menu selection at said portable electronic device for user enabling of said full image, said menu selection being generated if said original image exceeds said image size limit.

4. A method as claimed in claim 1, wherein said graph structure is a Document Object Model (DOM).

5. A method as claimed in claim 1, further comprising storing said full image in memory of said portable electronic device.

6. A method for viewing a full image of a server stored original attachment on a portable electronic device comprising:
building a graph structure within said server representing a map of said original image;
downloading and displaying a re-sized image from said server to said portable electronic device, said original image exceeding an image size limit of said portable electronic device indicative of screen size of said portable electronic device;
dividing said original image into four individual quadrants and calculating width and height parameters of said four individual quadrants;
sending a request from the portable electronic device to the server to enlarge the image displayed on said device based on said width and height parameters, said request including said image size limit;
retrieving and traversing said graph structure within the server to locate a separate image component constructed for said image size limit;
collecting image binary data from said separate image component and modifying said image binary data based on said width and height parameters to create four resized quadrants of said original image;
downloading each of said four resized quadrants to said attachment viewer; and
assembling said resized quadrants to display said full image of said original image on said portable electronic device.

7. A method as claimed in claim 6, wherein an original image width exceeds a width of said image size limit and an original image height exceeds a height of said image size limit.

8. A method as claimed in claim 6, further comprising storing said full image in memory of said portable electronic device.

9. A method as claimed in claim 6, wherein said graph structure is a Document Object Model (DOM).

10. A method as claimed in claim 6, further comprising generating a menu selection at said portable electronic device for user enabling of said full image, said menu selection being generated if said original image exceeds said image size limit.

11. A portable electronic device comprising:
an attachment viewer stored on said portable electronic device, said attachment viewer for dividing an original image attachment into four quadrants and requesting resized quadrants to assemble and display on said portable electronic device; and
an attachment server in communication with said attachment viewer, said attachment server for building a graph structure representing a map of said original image attachment and sending said resized quadrants to said attachment viewer; and
wherein said resized quadrants when assembled appear as a single seamless image on a display of said portable electronic device.

12. A portable electronic device as claimed in claim 11, wherein said graph structure is a Document Object Model (DOM).