A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by any one of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
1. Field of the Invention
The present invention is related to the field of digital photography and, in particular, to a system and method for capturing digital images and producing a picture from said digital image.
2. Description of the Related Art
Recently, the world of photography has experienced an explosion in digital photography. As consumers have become more comfortable with the technology, and as digital cameras have become more powerful to produce clearer and crisper pictures, consumers have increasingly purchased digital cameras and used such cameras for taking pictures both on an amateur and professional level. As a result of this explosion, various services have been proposed to provide a means for the consumer to get their digital pictures developed. One such service permits the photographer to bring their digital media into a photo developer and upload the digital images into a kiosk provided by the photo developer. Once the images are uploaded, the images are transmitted to a photo development system that prints the digital images in a size, color, and style selected by the user. Once the printed pictures are ready, the consumer returns to the photo developer to pick up the prints. Such services, however, are not ideal because the services require the consumer to make two trips to their photo developer each time they have digital images to be developed.
Other services, permit a photographer to access an Internet-based digital image upload system from a remote location, such as their home computer. In such systems the digital images are uploaded either from digital media (e.g., flash memory, CD-ROM, hard drive, etc.) or directly from the photographer's digital camera into the photographer's computer and then transmitted through the Internet to the digital image capture system. Pictures are then printed from the digital images and mailed to the address of the photographer's choice. Images may also be forwarded to additional addresses as gifts or provided as an Internet accessible digital photo album for viewing by selected family members or friends. These services, however, are not ideal because they require the photographer to pay for the shipping of their photographs and are also typically more expensive on a per picture basis. Moreover, these systems require an internet connection and a certain level of sophistication in using the Internet. Further, users of such systems must be confident in the transmission of credit card data via the Internet.
Using user software provided by a photo-developer, the user can select one or more of the digital images to incorporate into an order for photo prints. Once the digital images are selected, the user can select one or more printing options. After the printing options are selected, the software application creates an order file. The user then selects between an in-store pick-up option and a mail delivery option. If the in-store pick-up option is selected, the user is presented with functionality to locate the store located in close proximity to the user's home address or other address, as applicable. If multiple stores are within a selected distance, then the user may select a preferred one of the multiple stores. If, however, the mail delivery option is selected, then the user's pre-stored delivery address is retrieved (as is described further below) or the user is presented with an address entry form.
At this point, the user software presents the user with a form to enter payment information, or, in a manner similar to retrieval of the user's delivery address, retrieves the user's payment information (as is described further below). The user software then causes the computer to communicatively connect to a remote photo developer server system. The order file, along with the delivery and payment information, is transmitted to the photo developer service system. Once the transmission is complete the communications connection is terminated. The digital images that are transmitted with the order file are processed and printed prints in a manner known in the art. Upon completion of the printing process, the prints are either made available for pick-up or mailed to the user according to the user's desired delivery method.
In accordance with an embodiment of the present invention, a method for processing digital images generally comprises: providing software operable on a computer to a user, the order being generated by the software on the computer; receiving from the computer an order to print photographs; providing to the user via the computer a choice to have the photographs delivered by mail or held for pick-up at a store; receiving from the computer a delivery selection; transmitting to the computer product information based on the order to print photographs and the delivery selection; receiving from the computer a product selection; receiving from the computer one or more digital images selected by the user for printing; processing the digital images in accordance with the product selection; and making photographs available to the user in accordance with the delivery selection.
In one embodiment, the user is provided with a computer readable medium, such as a CD-ROM, that comprises application code operable on a computer for implementing the following procedures: prompting a user to select one or more digital images from a storage device; creating an order for photographic prints based on the user's selection of the one or more digital images; displaying information retrieved from a remote server system for one or more products based on the order; prompting the user to select from the one or more products displayed; prompting the user to upload the selected one or more digital images; and providing an order check out procedure to complete the order.
Additionally, a method of calculating an order pick-up time for an order for processing one or more digital images comprises: receiving the order for processing the digital images, calculating an order completion time, comparing the order completion time to a minimum default time, setting a client wait time based on the greater of the order completion time and the minimum default time, retrieving a store delay time, comparing a sum of the order completion time and the store delay time to the minimum default time, setting the order pick-up time to the client wait time if the sum of the order completion time and the store delay time is equal to or less than the minimum default time, and setting the order pick-up time to a sum of the store delay time and the client wait time if the sum of the order completion time and the store delay time is greater than the minimum default time.
Additional features and advantages of the system are described further below.
a through 2b depict an illustrative order flow for creating orders using user software on a user computer;
a and 4b are flow diagrams depicting illustrative process flows for ingesting and packing orders;
a and 12b are flow diagrams depicting illustrative process flows for calculating and displaying an estimated pickup time for the order; and
In an embodiment of the invention, a user interacts with a software application operative on a computing device. The computing device is capable of communication with one or more servers/databases of centralized system, which in turn is capable of communication with one or more photo developer systems.
The user software provides the user with functionality to access and view digital images on a display of the computing device and electronically place orders for photographic prints with a photo developer. Additionally, the photo images can be printed on products such as compact discs, t-shirts, mugs, and other novelty items. In the present embodiment, the user software generates an order file, which is transmitted via a network (such as the Internet) to a server system of the photo developer. The order file created at the user's computer may either contain the digital images selected by the user for printing or a path to the selected digital images on the user's computer or digital media device. Prints are made by the photo developer in a manner known to persons of ordinary skill in the art.
System Architecture
In the embodiment being described, as shown in
The user's computer device 15 is preferably a personal computer of either the desktop or laptop variety having sufficient processing power and communication capabilities to permit it to run the user software application and transmit order and image data to the photo developer's server system. An exemplary computer for use with the present invention would be an IBM-compatible computer having a 3.0 gigahertz processor and including, but not limited to the following components: an 80 gigabyte hard drive, a USB and/or IEEE 1394 port, a CD-ROM and/or DVD drive, a flash memory reader, a display (either CRT or LCD based), a modem and/or Ethernet capability. Of course, one skilled in the art will recognize that the above list of components need not be present on all computers used in connection with the present invention and that different computers with different processing power and components could be used. For example, a user that accesses digital images from a digital camera using a USB cable need not have a computer equipped with the IEEE 1394 port or a flash memory reader.
A centralized system 20 for receiving user orders for photo prints and digital images generally includes one or more web, backend, and FTP servers 22, 24, 26 interconnected with one or more database systems 28 on a network 30. The network 30 may either be a local area network (LAN) or a wide area network (WAN). Similarly, a store server system 40 generally includes one or more servers 42 and database systems 44 operative on a network. The network may either be a local area network (LAN) or a wide area network (WAN). The store server system 40 also includes a printing device 46 for printing the user's selected digital images. An exemplary printing device is Fuji Photo Film's Frontier 570 Digital Lab System. The centralized image processing system 30 is capable of communication with both the user computer 15 and the store server system 40 via a public network 50.
Although not depicted in the figures, the server systems described herein generally include such art recognized components as are ordinarily found in server systems, including but not limited to RAM, ROM, clocks, hardware drivers, and the like. The servers are may be configured using the Windows® NT/2000, UNIX or Sun Solaris operating systems, although one skilled in the art will recognize that the particular configuration of the servers is not critical to the present invention. It should also be noted that although the embodiments described herein describe use of servers and databases in functional terms, such embodiments could be implemented by storing the software or programming that operates the described functions on a single server or any combination of multiple servers as a matter of design choice so long as the functionality described herein is performed. Persons skilled in the art will further recognize that because multiple users may be accessing such servers and databases at any given time it is preferable to utilize multiple servers and databases, which may be used separately or in tandem to support the systems traffic and processing, such as, by way of non-limiting example, a round-robin configuration utilizing multiple server systems.
The phrase “capable of communication with” refers generally to the capability of the user's computer 15 and the store server system 40 to transmit data and messages to one another via any communication network 50, including but not limited to a network using a data packet transfer protocol (such as the Transmission Control Protocol/Internet Protocol (“TCP/IP”), User Datagram Protocol/Internet Protocol (“UDP/IP”)), a plain old telephone system (“POTS”), a cellular telephone system (such as the Advance Mobile Phone Service (“AMPS”)), or a digital communication system (such as GSM, TDMA, or CDMA).
User Software
In the embodiment being described, the user software is provided to users on a CD-ROM. In a preferred scenario, a user will utilize a photo development kiosk made available at a store site to deliver digital images to the photo developer. The kiosk is more times than not located within the photo developer's store. Persons of ordinary skill will recognize that the photo developer may be a large department type store, such as Wal-Mart, K-Mart, Sears, and the like. When the user's photos are developed, the user returns to the photo developer's store to retrieve the prints. At this time, in addition to the prints, the user is provided a CD-ROM having both the user's images and the user software stored thereon. In other embodiments, the user software can be provided to users through the direct mailing of CD-ROMs or Internet download.
The user software may be programmed in any programming language compatible with common operating systems in use, such as, for example, Microsoft Windows 95, 98, NT, 2000, ME, XP or Apple's Mac OS X. Preferably, the user software is programmed using an object oriented programming language, such as, for example, C++, Java, Visual Basic, and the like.
In the embodiment in which the user software is provided to a user on a CD-ROM, the user software is preferably designed to operate in a manner that does not require the user to install the software on a computer. Instead, the user software may be accessed and run directly from the provided CD-ROM. This feature is advantageous because it reduces the need for user's to be computer savvy and, thus enables user's of all computer skill levels to enjoy the ability of accessing, editing, uploaded and ordering prints from their homes or offices. In another alternative embodiment, the user software can be downloaded from a remote site and automatically installed on the user's computer 15.
In the embodiment being described, and with reference to
Application Programming Interface (API)
The user software is capable of creating orders for photo prints, transmitting the order and digital images, and communicating other data and information between the user's computer and the photo developer's server system. In a preferred embodiment of the invention, the user software is configured using an API that permits the transmission of data and information between the user's computer and the photo developer's server system. The user software preferably communicates with the photo developers server system using an API such as the Simple Object Access Protocol (SOAP), an Extensible Mark-up Language (XML)-based messaging protocol, which can encode information in web service request and response messages before transmitting them over a network.
In the present embodiment, the SOAP connection is over HTTP, which operates via a TCP/IP socket using standard internet implementations. However, persons of skill in the art will recognize that a direct socket protocol may be implemented using a compatible data format. Image data is preferably transferred using the File Transfer Protocol (FTP), and images may contain additional metadata for things like color and crop parameters. The SOAP API, for example, is used for product, order and account information, and prepares the photo developer servers for an upload of the image data. During and after an upload, the API as used to manage the upload process and communicate order status. The API may also be used to communicate image file metadata, such as color modifications and/or cropping parameters. Various preferred aspects of the API will now be described in connection with a typical photo ordering process.
Upon launch of the user software, as shown in
In the present embodiment, the user commences order creation functionality using a create order button, although persons of skill will recognize that the order creation functionality can be commenced in many different manners such as by automatically starting an order upon a successful login. At this point, the “Initialize Order” function is called and the server system creates a unique order identifier, which is transmitted in a message to the user's computer. The user is provided with the ability to access a group of photos and select certain photos to be added to the order. As shown in the preview interface 510 of
Once the digital images are selected, a GetProductCatalog message is transmitted to the backend server. The “GetProductCatalog” message includes a vendor ID and triggers a call to the database to return order information. The order information preferably includes item prices, shipping price, handling price, promotional prices, and tax amount. The vendor ID indicates to the backend server which prices/order information to return based on a particular vendor. For instance, Wal-Mart and another photo developers/vendors may have different prices, price packages, or promotions at any given time. The GetProductCatalog message returns various product information, such as item prices, shipping prices, handling prices, promotional prices, tax, and the total price for a particular selection. As is shown in print selection interface 600 of
Assuming the user selects the store pick-up delivery method, the user is presented with a store locator interface 800, such as is shown in
Once a store is selected, a check-out procedure is commenced. In the present embodiment, the user may be provided with a order summary interface (not shown), through which the user can review the order and either confirm the order as is or use a change order functionality. Assuming that the user does not wish to change the order, the user is then presented with a billing information interface 1000, as shown in
Photo Order Process Flow
With reference to
Next, in step 220, the user is presented with a print selection interface 600, as shown in
It will be understood that orders created by users can be saved to the user's local hard disk and accessed at a later time to be completed and transmitted to the server. Orders may also be produced off-line, using the most recent product and store information available (or cached) on the user's machine, then transmitted to the server at a later time, once communication is available. If the user creates and order offline, order validation would be performed to update pricing, store location, and other such information once communication is established. Orders may also be saved to removable media, taken by the user to the store, and imported directly into the production system or kiosk to be further edited and produced (to avoid the time required to upload a large number of images).
With reference now to
With reference now to
With reference again to
In step 325a, a series of file servers transmit the order files to a FTP server that uploads the order file to photo printing system. The status of the orders are updated by a Photo Imaging Controller (PIC). Preferably, the order status is updated every 5 minutes. The status information is passed by the FTP servers to a Syncher, in step 325b, that coordinates messaging with the Order Packer using a Work In Process (WIP) database. In other words, the Syncher can update the WIP database, in step 325c, so that the Order Packer software can determine when the next order file should be packed and transmitted via the file servers and FTP servers. The WIP database also stores information related to the status of completed orders and can provide updates to users via the user software.
In step 330, the order files transmitted to the order fulfillment system or PIC are delivered depending on size to either the photo developer lab at the subject store location (step 330a) or to a high volume processing lab (step 330b), such as the Fuji Color processing lab. If the images are sent to the high volume lab, then after the images are printed they are shipped, in step 335, to the store location where the prints can be picked up by the user.
Turning now to
Specifically, further to the process shown in
Estimated Pickup Time Determination and Display
Referring to
In a preferred embodiment, by way of example only, a database contains a data table detailing the length of time for a lab to print all orders currently queued-up for it, the network throughput to the lab, and the availability of the lab based on whether it is connected to the centralized system 20, its hardware is functioning properly, and/or whether the lab is offline for some reason. By way of example, a database preferably includes the following data fields and information:
In step 1201, the centralized system 20 receives the order as described above. The order may include, among other items, the total number of photographs, the size of each photograph, and a link to the location of each photograph either internal to the order file or stored locally on the user's machine 15. Once the order is obtained, in step 1202, the system 20 retrieves the lab information including “NumPrintsPerHour”, “NumPringsInLabQueue”, and “LabPrint BacklogMinutes”. Using the retrieved lab information in step 1203 a determination as to whether the lab is available for in-store fulfillment is made. If the store is not available then in step 1204 a message indicating that in-store fulfillment is not available is returned. If fulfillment is available, a determination is made as to whether the order data has been gathered, in step 1205. Next, if no order data has been gathered, in step 1206, the pick-up time is returned based on the “LabPrintBackLogMinutes” value. As described more fully below with reference to
Referring back to
In step 1209, it is determined whether the business rule is met. If the business rule is met then the fulfill hours “A” is set to the business rule value in step 1211. In step 1210, if the business rule is not met, then the fulfill hours “A” is set to the base hours value (e.g., 1-hour). In parallel, in step 1212, the order data is applied to the lab information to calculate an order time (shown as “B” in
In step 1213, the centralized system 20 then determines whether the fulfill time “A” based on the business rule is greater than or equal to the calculated order completion time “B”. If the fulfill time A is greater than or equal to the order completion time then in step 1214, the centralized system 20 sets the hours to fulfill to the fulfill time A value. If not, in step 1215, the centralized system 20 sets the fulfill order value to the order completion time value B.
Continuing with reference to
In an alternate embodiment, the order file may contain a store ID field which contains a unique value for a particular participating photo processing center. Step 1202 may therefore obtain the store ID value which corresponds to a user's preferred location to pickup the order regardless of any estimated pickup time. Similarly, if the store ID is left blank, the system may then determine the nearest location of a store capable of developing and printer digital photos based upon the user's zip code or similar entered limiting data. It is understood that the estimated pickup times, or any of the times that are used in its calculation may be rounded up or down to a set period of time, for example, in five minute increments or increments of a half an hour or hour.
In another alternate embodiment, the step 1202 of obtaining the lab information (including backlog time) may either be performed by the central server 20 or received from the individual store. For example, a lab delay file 1300 as described in
In another embodiment, the central server 20 may assign additional periods of delay to any given store in an attempt to set a priority based upon a favored store location. For example, all but a few stores or vendors may include a default store delay time which is added to the store delay time so as to direct more traffic to a particular store. In addition, the system may make a threshold determination wherein stores with equal delay times or delay times that differ less than a particular margin, favor one particular store.
Thus, while there have been shown and described fundamental novel features of the invention as applied to the exemplary embodiments thereof, it will be understood that omissions and substitutions and changes in the form and details of the disclosed invention may be made by those skilled in the art without departing from the spirit of the invention. It is the intention, therefore, to be limited only as indicated by the scope of the claims appended hereto.