PROVIDING WEB-BASED IMAGING SERVICES WITHIN A CLIENT-BASED APPLICATION
Embodiments are directed to a computer-implemented system and method for providing web-based features in a client-based digital imaging application. A location on a client is provided for storing a number of possible, future web-based features. The location has the capacity to accept a number of name-value pairs that define a web-based imaging feature. When a web-based feature is to be added, the name-value pairs that define the web-based imaging feature are added to the location. After a feature has been added, it is displayed for selection by a user. Upon selection of the web-based imaging feature, image data about a selected one or more images is recorded in a known location. The web-based service that is providing the web-based imaging feature is granted access to the image data in the known location. The image data in the known location is then deleted when the web-based imaging feature is closed.
Latest Microsoft Patents:
This application is a continuation of U.S. patent application Ser. No. 10/268,263, filed Oct. 10, 2002, which claims the benefit of U.S. Provisional Application Ser. No. 60/408,678, filed Sep. 5, 2002. Each of the aforementioned applications is herein incorporated by reference in its entirety.
BACKGROUNDDigitally represented still images are now commonly stored in a computer environment, such as a personal computer. The stored images can then be manipulated, printed, and indexed by the PC user. Software packages are available to aid the PC user in handling these digital images. Such software packages include numerous capabilities, including archiving the images, printing the images in various sizes and formats, and other editing capabilities, such as the ability to rotate an image, crop it, correct its brightness, contrast and tint. In addition, such software packages typically include the ability to cut portions out of one image and incorporate them into other images. These software packages are typically provided to the consumer via a piece of removable, computer-readable media, such as a compact disk or CD.
It has also become desirable to provide to the PC user a number of web-based imaging services. These web-based imaging services generally involve taking an image existing on the user's PC and sending it to a remote location on the World Wide Web, through the Internet. The remote location then provides some type of service related to the image. Examples of web-based imaging services include remote storage, professional printing and photo gift creation. Other web-based services are available and the services change and evolve over time. The imaging software packages provided via CD are typically revised only periodically. For example, the software provider may revise the imaging software packages only once per year. When a revision is made, the software provider updates, tests, and then releases the code to the consumers. In between software revisions, the software provider lacks the ability to add new web-based features to the software packages. In addition, when the software provider adds a web-based feature to the current software package, it must write new code for each feature. In other words, the code is not transferable from feature to feature. As with any software product, code addition is somewhat risky. To alleviate this risk, if new code is added, the software provider must test the code to ensure that the code addition does not cause problems elsewhere within the software.
It can therefore be seen that the current software imaging products and the system for updating this software involve several disadvantages. First, the software packages lack structure that allows updates as new web-based features are available, or as existing web-based features change. Second, the software packages require new code for each web-based feature. Third, code addition involves the risk of introducing error into the existing and already tested software package. A new client-based software imaging application is needed that can incorporate web-based features even after the software application has been released. A software package is needed that has structure allowing addition of features without introducing significant code changes and the resulting risk of error. Finally, the software package needs to allow addition of the web-based features in a way that involves a more uniform protocol from feature to feature.
BRIEF SUMMARYEmbodiments of this invention are generally directed to a computer-implemented system and method for providing web-based features in a client-based digital imaging application. One or more web-based features are provided in a location on a client device via a number of name-value pairs that define each web-based imaging feature. When another web-based feature is to be added, the name-value pairs that define the additional web-based imaging feature are added to the location. After a feature has been added, it is displayed for selection by a user. Upon selection of the web-based imaging feature, image data about a selected one or more images is recorded in a known location. The web-based service that is providing the web-based imaging feature is granted access to the image data in the known location. The user can then further interact with the web-based service to obtain further processing of the images, such as ordering prints or photo gifts relating to the image data. The image data in the known location is then deleted when the web-based imaging feature is closed.
Additional advantages and novel features of embodiments of the invention will be set forth in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following, or may be learned from practice of embodiments of the invention.
The present invention is described in detail below with reference to the attached drawing figures, wherein:
Embodiments of the present invention generally provide a method and software package for use in the handling of digital images stored in a computing device. The software package allows the addition of web-based or server-based imaging services after release of the software to the user community. These web-based imaging services may be added using a uniform protocol without introducing significant code changes.
Having briefly described an embodiment of the present invention, an exemplary operating environment for the present invention is described below.
Exemplary Operating EnvironmentEmbodiments of the invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that embodiments of the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. Embodiments of the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
With reference to
Computer 110 typically includes a variety of computer readable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
The computer 110 may also include other removable/nonremovable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
The computer 110 in the present invention will operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, and typically includes many or all of the elements described above relative to the computer 110, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user-input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
Although many other internal components of the computer 110 are not shown, those of ordinary skill in the art will appreciate that such components and the interconnection are well known. Accordingly, additional details concerning the internal construction of the computer 110 need not be disclosed in connection with the present invention.
Incorporation of Web-Based FeaturesThe client-based application of the present invention is used to handle digital images on a user's PC. While the software embodiment is described as stored on a CD, it should be understood that the software is provided to the PC user and is installed on the client PC. It should be understood that other methods of accomplishing this installation are also within the scope of this invention. The user loads the digital images onto the PC through any of a variety of methods, such as by the use of a scanner or directly from a digital camera. Once loaded, the software package allows a user to process and manipulate the images.
The client-based application of the present invention allows web-based features to be added to the application at any point in time, including after the product has been purchased by the user and loaded onto their PC. While discussed as “web-based” features, it should be understood that the principles apply not only to web-based features, but to any server based features as well. These web-based features all involve the basic functions of accessing and loading a digital image from the user's PC and delivering it through the Internet to a web-based service. The web-based service will then perform some type of processing desired by the user. These web-based services include, for example, the ability to order professionally printed images, photo gifts, and other image-based products, as well as the ability to save images to a storage site on the web, and to share images with others.
A client-based application incorporating the basic features of the present invention is shown schematically in
The client-based application 202 includes known editing and manipulating capabilities similar to those existing in the prior art. An exemplary client-based application is the PICTURE IT software application available from the Microsoft Corporation of Redmond, Wash. A schematic representation of the user interface for such an imaging application is broadly represented in
In the present invention, when a web-based feature is available to the user, the feature appears as an option to the user in the task area 214. The addition of a web-based feature is discussed below. Any web-based features known at the release of client-based application 202 are pre-loaded onto application 202. The web-based features are stored as a series of name-value pairs in the registry 200. These name-value pairs include a feature name 218, one or more feature instructions 220, a feature ID 222, a file format type 224, a maximum allowable image width 226, and a maximum allowable image height 228.
If a web-based feature is known at the time of the client-based application 202 release, its information is added to the registry 200 prior to shipping. Later, features can be added to the registry using the same format as the existing task infrastructure name-value pairs 218-228 in the registry 200. In other words, the registry has room for additional name-value pairs 218-228 discussed above. A feature is added to the client-based application 202 by updating the registry 200. In other words, the name-value pairs 218-228 corresponding to the added feature are added to the registry. After a feature has been added to the registry 200, it will be displayed as an available feature in the file menu when the user next launches the client-based application 202.
When the user accesses a web-based feature, the user selects the images for which further processing is desired. The client-based application 202 then saves certain information regarding these selected images to local storage 204. More specifically, client-based application 202 will save to the local storage folder 204 the selected images 230, a thumbnail 232 for each image, and a textual manifest 234. The web service 208 then provides its own user interface in the space 216 to the user. The web service 208 uses the ActiveX control 206 to access information about the selected images that exists in the manifest 234 and displays thumbnails by accessing pointers to the thumbnails 232 in storage 204. Once the user indicates to the web service 208 those images that need further processing, the web service 208 accesses the images 230 through ActiveX control 206 and uploads them through the Internet 210 to its service for processing.
Having generally described the broad components and process utilizing those components, a more detailed description follows.
Returning to
A sample registry entry for a feature allowing the user to save images to a storage site is shown in
A more detailed explanation of the workings of the present invention is described below with reference to
The client-based application 202 will also launch the web-based feature in the area 216 of the user interface. Upon launch of the web-based feature, the feature ID 222 is used by the redirector, which navigates to the web service 208. The web service 208 provides the feature-specific user interface in the area 216. As part of this launch, the user's connection to the Internet 210 may be checked. The user may also be taken though some type of authentication process by the web service 208 to identify the user to the web service 208. For example, the PASSPORT service used by the Microsoft Corporation of Redmond, Wash. may be used to authenticate the user. As best seen in
It is important to note that the user interface existing within area 216 at this point is provided by the web service 208. As an example, the web service 208 can present to the user thumbnails of the selected images to confirm which images the user desires to store through the web service 208. In doing so, the web service 208 uses the ActiveX control 206 on client-based application 202 to access the local storage folder 204. Again, the local storage folder 204 is populated when the user selects pictures or images for processing by a web-based feature. The ActiveX control 206 grants the web service 208 access to the image data within folder 204. When the web service 208 is instantiated, it calls the ActiveX control 206 to determine which files are available for further processing. The manifest 234 in folder 204 is used to inform the web service 208 which files are available for further processing. More specifically, the web service 208 sends down a page that will instruct the ActiveX control 206 to post all the data in manifest 234 to a web site chosen by web service 208. Web service 208 can then process this data on the server and send an appropriate web page back to the client-based application 202 in area 216. The manifest 234 also contains pointers to the thumbnails so that the web service 208 can render the thumbnails 232 of the images 230 without uploading the thumbnails 232 to the web service 208. The web page then builds the appropriate user interface displaying the thumbnails 232 as shown in
As seen in
In summary, a web-based feature is made available to users when its information is in the registry. When a user selects a task that uses a web-based feature, this launches a generic upload task and passes in an ID for the specific feature. The task then looks in the registry according to the ID and reads the registry to indicate how the web-based feature is to configure itself. The user then indicates which images are desired for further processing. At this point, the Client-based application 202 creates the contents of the folder 204, including the images, thumbnails, and the text manifest. The web-based feature then is informed about the indicated images through use of the ActiveX control 206 and displays the locally-stored thumbnails. After the web service 208 has confirmed the images that the user desires for further processing, the web service 208 uses the ActiveX control 206 to upload the actual image 230. The user then navigates through the remainder of the steps provided by the web service 208 in the user interface area 216 to finish the desired processing. After the user is done, the web-based feature is closed and the contents of the folder 204 are deleted.
If additional web-based features 208 become desirable, the registry is updated with information similar to that noted in
The present invention has been described in relation to particular embodiments, which are intended in all respects to be illustrative rather than restrictive. Alternative embodiments will become apparent to those skilled in the art to which the present invention pertains without departing from its scope.
From the foregoing, it will be seen that this invention is one well adapted to attain all the ends and objects set forth above, together with other advantages which are obvious and inherent to the system and method. It will be understood that certain features and subcombinations are of utility and may be employed without reference to other features and subcombinations. This is contemplated by and within the scope of the claims.
Claims
1. One or more computer storage media storing computer-useable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform a method for providing server-based imaging features in a client-based digital imaging application, the instructions comprising:
- identifying a location on a client having one or more name-value pair sets that define one or more server-based imaging features, each server-based imaging feature comprising functionality provided by one or more servers to the client-based digital imaging application;
- updating the location on the client by adding one or more new name-value pair sets defining one or more new server-based imaging features; and
- upon launching the client-based digital imaging application, determining available server-based imaging features defined at the location on the client and making available all defined server-based imaging features for selection by a user.
2. The one or more computer storage media of claim 1, the instructions further comprising: upon selection of a server-based imaging feature, determining configuration parameters for the selected server-based imaging feature from a name-value pair set defining the selected server-based imaging feature.
3. The one or more computer storage media of claim 2, wherein the configuration parameters include a feature title, one or more feature instructions, and a desired image format.
4. The one or more computer storage media of claim 2, the instructions further comprising: receiving, from the user, a list of images on which the selected server-based imaging feature is to perform an operation.
5. The one or more computer storage media of claim 4, the instructions further comprising: creating an item container on the client and populating the item container with information about each image in the list of images.
6. The one or more computer storage media of claim 5, the instructions further comprising: granting access to the information in the item container on the client to the selected server-based imaging feature.
7. The one or more computer storage media of claim 6, the instructions further comprising: deleting the information from the item container when the selected server-based imaging feature is closed.
8. The one or more computer storage media of claim 7, wherein the information populated to the item container includes, for each image in the list of images, a digital image file, a thumbnail image for the digital image file, and textual information about the digital image and the thumbnail pointer.
9. A computer-implemented method for providing server-based imaging features to a client-based digital imaging application, the method comprising:
- providing to a client one or more name-value pair sets that define one or more server-based imaging features including configuration parameters for each server-based imaging feature, wherein each server-based imaging feature comprises functionality provided by a server to the client-based digital imaging application, and wherein the client stores the one or more name-value pair sets at a location on the client, and further wherein when the client-based digital imaging application is launched, the one or more server-based imaging features are added to a current list of server-based imaging features available to a user.
10. The computer-implemented method of claim 9, the method further comprising: receiving, from the client, a list of images on which a provided server-based imaging feature is to perform an operation.
11. The computer-implemented method of claim 10, the method further comprising: accessing information on the client about each image in the list of images.
12. One or more computer storage media storing computer-useable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform a method for providing a server-based imaging feature in a client-based imaging application, the instructions comprising:
- launching the server-based imaging feature in the client-based imaging application on a client;
- storing image data in a storage folder on the client;
- providing access to the image data in the storage folder to the server-based imaging feature; and
- displaying a user interface for the server-based imaging feature generated based on at least a portion of the image data in the storage folder.
13. The one or more computer storage media of claim 12, wherein the storage folder is not available to other applications.
14. The one or more computer storage media of claim 12, wherein the storage folder is hidden from a user of the client device.
15. The one or more computer storage media of claim 12, the instructions further comprising: deleting the image data when the server-based imaging feature is closed.
16. The one or more computer storage media of claim 12, wherein only the server-based imaging feature is granted access to the storage folder.
17. The one or more computer storage media of claim 12, wherein access to the storage folder is granted and managed by a control
18. The one or more computer storage media of claim 12, wherein the image data stored in the storage folder comprises images saved in a file format specified for the server-based imaging feature, a thumbnail image for each of the images, and a text file that contains information about each of the images and thumbnail images.
19. The one or more computer storage media of claim 18, wherein the user interface is provided by a web service for the server-based imaging feature and generated by providing access to the text file in the storage folder to the web service for the server-based imaging feature, and wherein the user interface includes at least a portion of the thumbnail images from the storage folder in the user interface.
20. The one or more computer storage media of claim 19, the instructions further comprising:
- receiving a user selection of a first thumbnail from the user interface;
- identifying a first image in the storage folder corresponding to the first thumbnail; and
- uploading the first image from the storage folder on the client device to the web service for the server-based imaging feature.
Type: Application
Filed: Sep 23, 2011
Publication Date: Jan 12, 2012
Applicant: MICROSOFT CORPORATION (REDMOND, WA)
Inventors: ANDREW MARTIN WAND (NEWCASTLE, WA), JEFFREY ALAN KOHLER (BELLEVUE, WA), ALEXANDER SABO BRODIE (REDMOND, WA)
Application Number: 13/243,120