A METHOD AND SYSTEM FOR A DIGITAL IMAGE CAPTURE DEVICE

Abstract: A method and system for generating an HTML (hypertext markup language) file including images captured by a digital imaging device, the digital imaging device having a display. A script and its predefined model are provided to the digital camera. The script is comprised of a set of software program instructions. The digital camera executes the script to display interactive instructions on the display that prompt a user to perform specific operations. In response to the user performing the specific operations, the digital camera automatically updates the interactive instructions, such that the user is guided through a series of related image captures to obtain a series of resulting images. The digital camera then generates an HTML file including the resulting images, wherein the HTML file is formatted in accordance with the predefined model.

Description: A METHOD AND SYSTEM FOR A D IGITAL IMAGE CAPTURE DEVICE FIELD OF THE INVENTION The field of the present invention pertains to digital image capture devices. More particularly, the present invention relates to a method and system for producing HTML using the electronic systems within a digital camera. One embodiment of the invention discloses a method and system for producing an internet page description file on a digital imaging device. BACKGROUND OF THE INVENTION Most digital cameras today are very similar in size and behavior to conventional point-and-shoot cameras. Modern digital cameras for taking pictures of scenes and the like typically include an imaging device which is controlled by a computer running a software program. When an image is captured, the imaging device is exposed to light and generates raw image data representing the image. The raw image data is typically stored in a single image buffer where it is then processed and compressed by the processor. Many types of compression schemes are used to compress the image data, with the joint photographic expert group (JPEG) standard being the most popular. After the processor processes and compresses the raw image data into JPEG image files, the processor stores the JPEG image files into an internal memory or on an external memory card. Some digital cameras are also equipped with a liquid-crystal display (LCD) or other type of display screen on the back of the camera. Through the use of the LCD, the processor can cause the digital camera to operate in one of two modes, play and record, although some cameras only have a record mode. In play mode, the LCD is used as a playback screen for allowing the user to review previously captured images either individually or in arrays of four, nine, or sixteen images. In record mode, the LCD is used as a viewfinder in which the user may view an object or scene before taking a picture. Besides the LCD, digital camera user interfaces also include a number of buttons or switches for setting the camera into one of the two modes and for navigating between pictures in play mode. For example, most digital cameras include two buttons labeled "-" and "+" that enable a user to navigate or scroll through captured pictures. For example, if the user is reviewing pictures individually, meaning that single pictures are displayed full-sized in the LCD, pressing one of navigation buttons causes the currently displayed picture to be replaced by the next picture. The electronic nature of the digital camera's pictures make them particularly well suited for use with other electronic applications. The pictures are also particularly well suited for use in the creation of complex text and image documents. Using document creation software applications, the pictures can be incorporated into a document along with corresponding text annotations or descriptions. Once created, the documents can be electronically transmitted (e.g., via email) or printed and distributed conventionally. The resulting document can be formatted in accordance with any of a number of popular page description languages used for the Internet, such as HTML (hypertext markup language), XML (extensible markup language), Java script, and the like . For example, once the HTML file, referencing the pictures has been created, it can easily be exchanged among any number of users via email and subsequently viewed (e.g., as a web page) using any of a number of web browsers. Alternatively, the HTML file itself can be made available over the Internet using web server software. The HTML file essentially becomes a web page which web browser equipped users can view or download on demand. However, even with these advanced capabilities, it remains desirable to make the user's experience with the digital camera as intuitive and "hassle- free" as possible. The objective is to provide the advanced capabilities afforded by a digital camera while retaining the simplicity and straight forwardness of conventional point and shoot cameras. Consequently, there is a problem in providing sophisticated capabilities and features to the user while still retaining a simple straight forward method of operation. For example, to create and electronically distribute a document and pictures from a digital camera, a user needs to first capture the image (e.g., take the picture), and then transfer the image to a personal computer. One method involves transferring a removable storage element (e.g., a flash disk) from the digital camera to a corresponding input peripheral device (flash disk attachment) coupled to the personal computer. Another method involves tethering the camera to the computer and transferring the file to the computer using a specialized software application. The user can then manipulate the image using a separate image editing software tool, or use any image editing features included in the specialized software application. The user then imports the image into a document editing application. If the resulting document is to be in HTML format, an HTML publishing application would typically be used. There, the user formats the document by, for example, annotating the image with, for example, descriptive text, and including any other patentee information. The image is placed on the "page" with respect to the descriptive text (e.g., title, subheadings, etc.). The resulting document is saved in HTML format. Thus, in order to create an HTML file including images taken with the digital camera, in addition to taking the picture, the user is currently required to know how to transfer the picture to the PC, import the image into an image editing application, import the image into an HTML publishing application, and format an HTML file. As the information must be entered while using the HTML publishing application, as opposed to when the pictures are taken, the user needs to remember the relevant details about each picture or have previously taken notes regarding the pictures elsewhere. In addition to all of the above, the user is also required to have the requisite skills in operating the image editing application, and operating the HTML publishing application. Hence, what is needed is an inexpensive method and system for capturing images and generating a formatted electronic document which references those images. The document should be readily interchangeable among users using a variety of computer implemented methods, such as, for example, email, LANs/WANs (local area networks/wide area networks), or the Internet. The process of creating the formatted document including the image should be intuitive and user friendly. The present invention provides a novel solution to the above requirements. SUMMARY OF THE INVENTION The present invention provides an inexpensive method and system for capturing images and generating a formatted electronic document which includes those images. The document is readily interchangeable among users using a variety of computer implemented methods, such as, for example, email, LAN/WANs, or the Internet. The present invention provides a process of creating the formatted document including the image which is intuitive and user friendly. In one embodiment, the present invention comprises a method and system for generating a page description file, such as HTML (hypertext markup language) that references images captured by a digital camera. A script, comprised of computer readable instructions, is provided to the digital camera. The script is interpreted by the camera such that the camera sequences though a series of actions, such as for example, prompting the user to take a picture, prompting the user to enter any descriptive information regarding a picture, and the like. The script also includes a set of predefined instructions and formatting commands which are adapted to create a formatted web page (e.g., HTML file) in accordance with a certain desired appearance. This set of instructions and commands are referred to as a "model". The creator of the script develops the model in accordance with the particular requirements to which the script is designed. The digital camera executes the script to display interactive instructions on the camera's display that prompt a user to perform specific operations. In response to the user performing the specific operations, the digital camera automatically updates the interactive instructions, such that the user is guided through a series of steps, such as, for example, taking a series of related image captures and annotating them. The digital camera then generates an HTML file referencing the resulting images, wherein the HTML file is formatted in accordance with the script's predefined model. In so doing, the present invention allows a user having no knowledge of HTML to produce HTML and image files which describe one or more web pages including the resulting images. The web pages are viewable through the use of any of a number of widely used web browsers. In addition, the present invention allows the user to annotate and enter descriptive information regarding the images at the time they are captured, rather than having to first transfer the captured images to a PC or enter notes elsewhere. The HTML file can then be downloaded from the digital camera using, for example, a removable storage device (flash disk, PC Card, etc.). Alternatively, in another embodiment, the HTML file can be made directly available over the Internet through the use of a web server hosted by the digital camera itself. BRIEF DESCRIPTION OF THE DRAWINGS The present invention is illustrated by way of example and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements and in which: Figure 1 shows a block diagram of a digital camera for use in accordance with the present invention. Figure 2 shows a block diagram of an imaging device in accordance with one preferred embodiment of the present invention. Figure 3 shows a block diagram of a computer in accordance with one preferred embodiment of the present invention. Figure 4 shows a memory map of a DRAM in accordance with one embodiment of the present invention. Figure 5A shows a top view diagram depicting the preferred hardware components of the camera from Figure 1. Figure 5B shows a back view diagram depicting the preferred hardware components of the camera from Figure 1. Figure 6A shows a diagram of a first directed image capture screen in accordance with one embodiment of the present invention. Figure 6B shows a diagram of a second directed image capture screen in accordance with one embodiment of the present invention. Figure 7 shows a block diagram illustrating the contents of a ROM and DRAM of a the camera from Figure 1. Figure 8 is a flow chart illustrating an exemplary process of installing and running a script in accordance with one embodiment of the present invention. Figure 9 shows a web page as described by an HTML file created by a script in accordance with one embodiment of the present invention. Figure 10 shows a diagram of a digital camera of the present invention coupled to the Internet via an ISP and a dial-up connection. Figure 11 shows a diagram of the connectivity and application software of the camera from Figure 10 is shown. 10 DETAILED DESCRIPTION OF THE INVENTION In the following detailed description of the present invention, numerous specific details are set forth in order to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Although the present invention will be described in the context of a digital camera, various modifications to the preferred embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. That is, any image capture device which displays or prints images, icons and/or other items, could incorporate the features described hereinbelow and that device would be within the spirit and scope of the present invention. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein. The present invention provides an inexpensive method and system for capturing images and generating a formatted electronic document which includes or references those images. The document is readily interchangeable among users using a variety of computer implemented methods, such as, for example, email, LAN/WAN, or the Internet. The present invention also provides a process of creating the formatted document including the image which is intuitive and user friendly. In addition, the present invention includes a method and system for inexpensively making the formatted document available via the Internet to web browser equipped users. The present invention and its advantages are further described below. 1 1 Referring now to Figure 1, a block diagram of a digital camera 110 is shown for use in accordance with the present invention. Camera 110 preferably comprises an imaging device 114, a system bus 116 and a computer 118. Imaging device 114 is optically coupled to an object 112 and electrically coupled via system bus 116 to computer 118. Once a photographer has focused imaging device 114 on object 112 and, using a capture button or some other means, instructed camera 110 to capture an image of object 112, computer 118 commands imaging device 114 via system bus 116 to capture raw image data representing object 112. The captured raw image data is transferred over system bus 116 to computer 118 which performs various image processing functions on the image data before storing it in its internal memory. System bus 116 also passes various status and control signals between imaging device 114 and computer 118. Referring now to Figure 2, a block diagram of one preferred embodiment of imaging device 114 is shown. Imaging device 114 typically comprises a lens 220 having an iris, a filter 222, an image sensor 224, a timing generator 226, an analog signal processor (ASP) 228, an analog-to-digital (A/D) converter 230, an interface 232, and one or more motors 234. In operation, imaging device 114 captures an image of object 112 via reflected light impacting image sensor 224 along optical path 236. Image sensor 224, which is typically a charged coupled device (CCD), responsively generates a set of raw image data in CCD format representing the captured image 112. The raw image data is then routed through ASP 228, A/D converter 230 and interface 232. Interface 232 has outputs for controlling ASP 228, 1 2 motors 234 and timing generator 226. From interface 232, the raw image data passes over system bus 116 to computer 118. Referring now to Figure 3, a block diagram of one preferred embodiment for computer 118 is shown. System bus 116 provides connection paths between imaging device 114, an optional power manager 342, central processing unit (CPU) 344, dynamic random-access memory (DRAM) 346, input/output interface (I/O) 348, non-volatile memory 350, and buffers/connector 352. Removable memory 354 connects to system bus 116 via buffers/connector 352. Alternately, camera 110 may be implemented without removable memory 354 or buffers/connector 352. Power manager 342 communicates via line 366 with power supply 356 and coordinates power management operations for camera 110. CPU 344 typically includes a conventional processor device for controlling the operation of camera 110. In the preferred embodiment, CPU 344 is capable of concurrently running multiple software routines to control the various processes of camera 110 within a multithreaded environment. DRAM 346 is a contiguous block of dynamic memory which may be selectively allocated to various storage functions. LCD controller 390 accesses DRAM 346 and transfers processed image data to LCD screen 402 for display. I/O 348 is an interface device allowing communications to and from computer. For example, I/O 348 permits an external host computer (not shown) to connect to and communicate with computer 118. I/O 348 also interfaces with a plurality of buttons and/or dials 404, and an optional status 1 3 LCD 406, which in addition to the LCD screen 402, are the hardware elements of the camera's user interface 408. Non-volatile memory 350, which may typically comprise a conventional read-only memory or flash memory, stores a set of computer-readable program instructions to control the operation of camera 110. Removable memory 354 serves as an additional image data storage area and is preferably a non-volatile device, readily removable and replaceable by a camera 110 user via buffers/connector 352. Thus, a user who possesses several removable memories 354 may replace a full removable memory 354 with an empty removable memory 354 to effectively expand the picture-taking capacity of camera 110. In the preferred embodiment of the present invention, removable memory 354 is typically implemented using a flash disk. Power supply 356 supplies operating power to the various components of camera 110. In the preferred embodiment, power supply 356 provides operating power to a main power bus 362 and also to a secondary power bus 364. The main power bus 362 provides power to imaging device 114, I/O 348, non-volatile memory 350 and removable memory 354. The secondary power bus 364 provides power to power manager 342, CPU 344 and DRAM 346. Power supply 356 is connected to main batteries 358 and also to backup batteries 360. In the preferred embodiment, a camera 110 user may also connect power supply 356 to an external power source. During normal operation of power supply 356, the main batteries 358 provide operating power to power supply 356 which then provides the operating power to camera 110 via both main power bus 362 and secondary power bus 364. During a power failure mode in which the main batteries 358 have failed (when their output voltage 14 has fallen below a minimum operational voltage level) the backup batteries 360 provide operating power to power supply 356 which then provides the operating power only to the secondary power bus 364 of camera 110. Referring now to Figure 4, a memory diagram showing one embodiment of dynamic random-access-memory (DRAM) 346 is shown. In the preferred embodiment, DRAM 346 includes RAM disk 532, a system area 534, and working memory 530. RAM disk 532 is a memory area used for storing raw and compressed image data and typically is organized in a "sectored" format similar to that of conventional hard disk drives. In the preferred embodiment, RAM disk 532 uses a well-known and standardized file system to permit external host computer systems, via I/O 348, to readily recognize and access the data stored on RAM disk 532. System area 534 typically stores data regarding system errors (for example, why a system shutdown occurred) for use by CPU 344 upon a restart of computer 118. Working memory 530 includes various stacks, data structures and variables used by CPU 344 while executing the software routines used within computer 118. Working memory 530 also includes several input buffers 538 for temporarily storing sets of raw image data received from imaging device 114, and a frame buffer 536 for storing data for display on the LCD screen 402. In a preferred embodiment, each input buffer 538 and the frame buffer 536 are split into two separate buffers (shown by the dashed lines) to improve the display speed of the digital camera and to prevent the tearing of the image in the display 402. 1 5 Figures 5A and 5B are diagrams depicting the preferred hardware components of the camera's 110 user interface 408. Figure 5A is back view of the camera 110 showing the LCD screen 402, a four-way navigation control button 409, an overlay button 412, a menu button 414, and a set of programmable soft keys 416. Figure 5B is a top view of the camera 110 showing a shutter button 418, and a mode dial 420. The camera may optionally include status LCD 406, status LCD scroll and select buttons 422 and 424, a sound record button 426, and zoom-in, zoom-out buttons 426a and 426b. The digital camera of the present invention is controlled by graphical- user-interface (GUI) based operating system (OS), which is in contrast to conventional digital cameras that are controlled by proprietary hardware architectures. In the preferred embodiment of the present invention, the OS provides the digital camera with several different operating modes for supporting various camera functions. Although the digital camera may include several different operating modes, the modes relevant to this description are capture mode, and play mode. In capture mode, the camera 110 supports the actions of preparing to capture an image, and capturing an image through the use of either the LCD screen 402 alone or the status LCD 406 with the aid of an optional optical viewfinder (not shown). In review mode, the camera 110 supports the actions of reviewing camera contents, editing and sorting images, and printing and transferring images. In play mode, the camera 110 allows the user to view screen-sized images in the LCD screen 402 in the orientation that the image was captured. Play mode also allows the user to hear recorded sound 16 associated to a displayed image, and to play back sequential groupings of images, which may comprise time lapse, slide show, and burst image images. The user preferably switches between the capture, review, and play modes, using the mode dial 420. When the camera is placed into a particular mode, that mode's default screen appears in the LCD screen 402 in which a set of mode-specific items, such as images, icons, and text, are displayed. The present invention provides an inexpensive method and system for capturing images and generating a formatted electronic document which includes those images. The document is readily interchangeable among users using a variety of computer implemented methods, such as, for example, email, LAN/WAN, or the Internet. The present invention provides a process of creating the formatted document including the image which is intuitive and user friendly. The document can be created in any of a number of formats. Such formats include, for example, HTML format, Postscript format, Acrobat format, and the like. In one embodiment, the present invention comprises a method and system wherein camera 110 automatically generates a formatted HTML file referencing images captured by the user. This is accomplished through the use of a script. As used herein, a script is an interpreted program written with text-based commands. A script may also be written using other interpreted languages, such as BASIC and LISP, for example. A script in accordance with the present invention also includes a predefined set of commands which determine the formatted appearance of a web page. The script is interpreted by camera 110, which performs the actions, steps, functions, and the like, as dictated by the script. The predefined set of 17 commands which determine the formatted appearance of a web page are referred to as a model. The model is designed (e.g., by the user, a third party developer, or the like) to give the resulting web page its distinctive appearance. For example, in one embodiment, a script can be created that sequentially directs the user to select from a set of previously captured images stored within camera 110, enter annotations regarding each image, and automatically format an HTML file in accordance with a predefined model. Alternatively, in another embodiment, a script can be created that directs the user to take a series of images, enter annotations for the images, and automatically format an HTML file in accordance with the predefined model. In both cases, the HTML commands which determine the appearance, hereafter referred to as the format, of the resulting web page are generated by the script in accordance with the predefined model. In the embodiment where the script includes a directed image capture sequence, the directed image capture sequence provides a series of instructions which prompts and directs the user through a sequence actions, such as, for example, taking a picture, promoting the user for any descriptive information regarding the picture, prompting the user for annotations, and the like. Camera 110 executes the directed image capture sequence, and typically displays interactive instructions on LCD screen 402 that guide the user through the scripted sequence. Camera 110 keeps track of the user's progress through the scripted sequence and automatically updates the interactive instructions, such that the user is guided through a series of related image captures to obtain a series of resulting images. The model functions as a "blue print" which describes the appearance and logical 18 structure of the resulting web page described by the HTML file. As the images are captured and text information entered, the images, and text are tagged with HTML commands in accordance with the model. In executing a script in accordance with the present invention, camera 110 generates an HTML file including the resulting images, wherein the HTML file is formatted in accordance with the script's predefined model. The model defines the formatting and positioning information which determine the overall appearance of the web page. For example, with a directed image capture script, as the directed image capture sequence "steps" the user through a series of image captures, the script automatically formats the descriptive information or annotations entered by the user in accordance with the model so that they appear in a desired manner in with respect to the corresponding picture (for example, specifying that the title of the image be centered above the picture and in a relatively large font, while the annotations are justified below the picture in a smaller font). Thus, once the user has progressed though and completed a given directed image capture sequence, camera 110 has generated the corresponding formatted HTML file. In the embodiment where the script does not include a directed image capture sequence, the script functions in a substantially similar manner, except that the user is not prompted to take pictures. Rather, the user could be prompted to select pictures from a set stored in the memory of the camera, stored on removable media, or stored elsewhere. As the particular pictures are selected, the script prompts and directs the user for any descriptive information, annotations, and the like, in the same manner as the script including the directed image capture sequence. 19 In both embodiments, camera 110 allows a user to produce a completed, formatted, HTML file (e.g., one or more web pages) which references the resulting images from the digital camera, without requiring the user to have any knowledge of HTML or HTML formatting. In addition, the present invention allows the user to annotate and enter descriptive information regarding the images at the time they are captured, rather than having to first transfer the captured images to a PC or enter notes elsewhere. Although the embodiment of the present invention described herein and below generates a formatted HTML file, it should be appreciated that the images and information entered by the user can be formatted in accordance with other well known graphics, document, or interchange formatting standards (e.g., Postscript, Acrobat, etc.). Generating formatted HTML files provides the advantage of relatively widespread interchangability due to the ubiquity of web browsers and the World Wide Web. In addition, it should be appreciated that a script in accordance with the present invention is not required to include a directed image capture sequence, although the scripts of the embodiments described below include directed image capture sequences. The scripts of the present invention and their operation are further described below. Referring now to Figures 6A and 6B, diagrams illustrating example directed image capture screens are shown. Figures 6A and 6B show LCD screen 402, four way navigation control button 409, overlay button 413 and menu button 415. User interaction with the GUI based operating system of camera 110 is via implemented, in part, through the use of dynamic overlay 2 0 bars 430 and 432. Overlay bars 430 and 432 are used to provide the user with various status information of the camera and provide various instructions for using the camera, including interactive instructions associated with a script, or more particularly, a script including a directed image capture sequence. The information or instructions displayed by overlay bars 430 and 432 is typically specific to the particular operating mode of camera 110. Overlay bars 430 and 432 are located on LCD 402 so as not to obscure any image or object currently being viewed. In accordance with the present invention, overlay bars 430 and 432 provide interactive instructions which guide the user through the directed image capture sequence and any other actions of the script. For example, the screen shown in Figure 6A may pertain to an insurance-related directed image capture that prompts an insurance claims adjuster to take a series of pictures of a damaged vehicle, or it may pertain to a real estate application that guides a user through taking photos of a house for sale. In the insurance example, once the directed image capture has started, the user may be instructed to take various views of the damaged car. The user may also be shown the number of the current image in that sequence, and the total number of images to be captured. After the pictures of the car are taken, the script may then prompt the user to enter specific information, such as the name of the image, as shown in Figure 6B. The user may then enter text by choosing letters using the four-way control button 409. For insurance purposes, the script may also request the 2 1 user to input the owner's name, license plate number, claim number, and so on. A formatted HTML file is then generated using the captured images and the entered information. The formatting is in accordance with the script's predefined model. The HTML file may then be downloaded from the camera (e.g., via removable storage media, via universal serial bus, or some other means), for example, to a PC for storage in a database, or to a web server for display as a web page. In one embodiment of the present invention, one or more scripts (e.g., for different directed image capture sequences) may be provided in the camera as built-in functions, especially if the camera is tailored for specific industries (e.g., the insurance industry). However, the camera may be made more flexible by implementing the scripts as a set of program instructions that are externally loaded into the camera. Once loaded in the camera 110, the instructions comprising the scripts are then preferably executed by the GUI-based system software running on CPU 344. Figure 7 is a block diagram illustrating the contents of ROM 350 where the software is stored, and DRAM 346 where the software is executed. The software 600 may include a control application 602, a toolbox 604, drivers 612, a kernel 614, and a startup/ configuration module 616. The control application 602 is the main program that controls high-level functions of the digital camera and is responsible for interfacing with functions in the toolbox 604. 2 2 Toolbox 604 comprises selected function modules that control how the digital camera captures and manipulates images. The modules may include image processors 606, a camera control shell 608, and a script interpreter 610. Image processors 606 are programs for enhancing (e.g., adjusting the contrast, sharpening, converting the image to gray-scale, etc.) the digital image received from imaging device 114. Camera control shell 608 receives and processes data structures for controlling camera functions. Script interpreter 610 translates and executes script statements, which are used to provide the directed image capture sequences and other camera 110 features, as explained below. Drivers 612 comprise program instructions for controlling various camera 110 hardware components, such as motor 234 (Figure 2) and a flash (not shown). Kernel 614 comprises program instructions providing basic underlying camera operating system services including synchronization routines, task creation, activation and deactivation routines, resource management routines, etc. Startup/configuration 616 comprises program instructions for providing initial camera 110 start-up routines such as the system boot routine and system diagnostics When the camera 110 is first turned on and booted up, the startup/configuration 616 module begins to execute and loads the drivers 612, the kernel 614, the control application 602, and system files containing configuration information into DRAM 346. Thereafter, operation of the camera is passed to the control application 602. In an alternative embodiment, 2 3 the software 600 may executed out of ROM 350 in order to reduce the size of DRAM 346. The script for directed image capture sequence 618 may be loaded into the digital camera 110 from the removable memory 354 (Figure 3), a host computer, or a network, and stored in DRAM 346 to run in place of the control application 602. Once loaded into the camera, the script may be selected by the user from a menu where it is displayed for selection, and is thereafter executed by the control application 602 by passing the script to the script interpreter 610. The script interpreter 610 then translates and executes the script instructions comprising the directed image capture sequence 618 one-by- one. As the user sequences through the script, the HTML code for the resulting file is generated. For example, as the user is prompted to take specific pictures, such as the various views of the car as described in the insurance example above, the user may also be prompted to enter descriptive information regarding each picture. The script records this information and the corresponding images along with the HTML commands in a file. As described above, the HTML commands are generated in accordance with the script's predefined model. These commands determine the appearance, or the format, of the web page described by the resulting file, and hence, the file is typically referred to as an HTML file. In one embodiment, the information, HTML commands, and references to the pictures are stored in the file incrementally, as the user sequences through the script. Alternatively, the user supplied information and references to the pictures can be stored in the file, and then the appropriate HTML commands inserted at the conclusion of 24 the of the script. The pictures themselves are typically stored as separate associated files which are referenced by the HTML file. In either case, once the file is completed, the web page is ready to be viewed using a web browser. As is well known, the HTML file is interpreted by a web browser, which in turn, displays a resulting web page. The commands included in the HTML file describe the logical structure of the web page. The HTML file includes ASCII text with embedded HTML tags which instruct the web browser as to the appropriate font, position, etc., for the text. The images are also associated with HTML tags describing their attributes with respect to the web page (e.g., position, relative size, etc.). The web browser interprets the HTML file and displays the web page, or pages, described by the file. Thus, the process of generating an HTML file is often referred to as generating a web page and the process of a web browser accessing and interpreting the HTML file is often referred to as displaying a web page. Figure 8 is a flow chart illustrating an exemplary process of installing and running a script in accordance with one embodiment of the present invention. In this embodiment, the script includes a directed image capture sequence. The process begins by inserting the removable memory 354 in step 700. When the removable memory 354 is installed, the removable memory 354 is mounted by the operating system 600 in step 702. Thereafter, the operating system searches for system files on the removable memory 354, which alert the digital camera 110 to the presence of an external program, in step 704. Any system files found on the removable memory 354 and corresponding directed image capture sequences 618 and associated models are then installed 2 5 and made available to the user for selection via menu choices that appear on the LCD screen 402 in step 706. Once the list of available scripts are displayed, the user selects one of them (e.g., the script for directed image capture sequences 618) to run in step 708. In a preferred embodiment, the list showing the available scripts may be categorized in menus for easier selection. For example, assume a real estate agent has three different scripts for capturing images of different types of properties. The agent may name or create categories for the directed image capture sequences called "commercial", "industrial", and "residential", for instance. Selecting the residential category, for example, will cause a list of directed image captures to be displayed that are designed to capture pictures of different types of residential properties, such as one, two, and three bedroom homes. The user may then select a desired script depending on the particular house to be shot. After the user selects a particular script to run (e.g., the script including directed image capture sequence 618), the script interpreter 610 begins interpreting the directed image capture sequence 618 in step 710, and control is passed from the control application 602 to the script. In step 712, the script interpreter 610 fetches the first command comprising the directed image capture sequence 618. The script also opens a new HTML file, in which the user entered information, HTML commands, and the like are to be stored. It is then determined whether the fetched command is a script "WaitForShutter" command in step 714. This command causes control of the camera 110 to pass back to the control application 602 until the user presses the 26 shutter button 418 to capture an image. The "WaitForShutter" command is preferably called with a quoted string parameter that is used in the dynamic overly bar 430 as the prompt to the user requesting an image capture (e.g., "Take photo of kitchen", Take photo of the front of the house", etc.). If the command is a "WaitForShutter" command in step 714, then control is returned to the script after the user presses the shutter button 418 in step 716 to capture an image. If the fetched command is not a "WaitForShutter" command in step 714, then the script interpreter 610 interprets and executes the command in step 718. In step 719, depending upon the command interpreted in steps 714 and 718 , the script generates code in accordance with the script's predefined model. For example, if a picture is taken, depending upon the model, the picture is tagged with formatting HTML codes which describe its location on the web page. If information is entered by the user, the information (e.g., ASCII text) is similarly tagged with formatting HTML codes. Thus, one or more formatted HTML files are generated as the user progresses through the script. The script continues to execute, with new commands being fetched from memory, until the end of the script is reached, as shown by step 720. If it is determined if the end of the script has been reached in step 720, control is returned to the control application 602. If not, then the next command is fetched in step 712, and the process continues until the end of the script is reached. Once the end of the script is reached, the one or more HTML files are closed and saved. Once control as been returned, the one or more completed, 2 7 formatted HTML files are available to the user for downloading, storage, or any other use. An exemplary portion of a script in accordance with one embodiment of the present invention is shown below: # Open HTML file and write header info to it. DisplayLine ("Writing header info") FileOpen (2, "HOME3.HTM", 1, fileld) WriteLine (fileld, "<html>") WriteLine (fileld, "") WriteLine (fileld, "<head>") WriteLine (fileld, " <!-- To change the window title, replace the words Christopher Realty, IncΛ" -->") WriteLine (fileld, " <!— below with whatever words you want to appear — >") WriteLine (fileld, " <title>Christopher Realty, Inc.</title>") WriteLine (fileld, "</head>") WriteLine (fileld, "") WriteLine (fileld, "<BODY BGCOLOR=\"#FFFFCC\">'*) WriteLine (fileld, "<PxIMG SRC=\"logo.gi " WIDTH=\"468\" HEIGHT=\"53\" ALIGN=\ ,, BOTTOM\" BORDER=\"0\"x/P>") #Choose property and set values accordingly DisplayClear () DisplayLine ("Select the property that you wish to create a web page for") Wait (2000) SetOption (1, "401 Cristobal Street", 0) SetOption (2, "958 Willowleaf Drive", 0) SetOption (3, "2702 Windbluff Lane", 0) GetOption (choice) if choice == 1 WriteLine (fileld, "<P><BRxBRxFONT SIZE=\"5\"xB>401 Cristobal Street</Bx FONTxBR>") WriteLine (fileld, "<TABLE BORDER=0 cellpadding=0>") WriteLine (fileld, "<TR>") footage = 2300 acreage = "1" age = 12 end if choice == 2 WriteLine (fileld, "<PxBRxBRxFONT SIZE=\"5\"xB>958 Willowleaf Drive</Bx/FONTxBR>") WriteLine (fileld, "<TABLE BORDER=0 cellpadding=0>") WriteLine (fileld, "<TR>") 28 footage = 3500 acreage = "3/4" age = 5 end Referring now to Figure 9, a web page described by an HTML file created by a script of the present invention is shown. This script is for use in the real- estate industry, as its model is designed to format a web page suited for advertisement. As shown in Figure 9, three images are included in the HTML file, along with descriptive information. As described above, the images are located and scaled with respect to the web page in accordance with the script's predefined model. The model also automatically inserts the text entered by the user into the desired location and automatically applies formatting, such as font type and size, justification, etc. For example, the script may prompt the user for the address of the house, "958 Willowleaf Drive", and store the entered information in the resulting HTML file with its defined formatting. Thus, the user is able to create the web page as shown in Figure 9 without having to learn or memorize any HTML formatting commands, features, etc. In another embodiment of camera 110, camera 110 includes the necessary software and the necessary computational resources (e.g., computer 118) to act as a web server and host the web pa j ge defined by the HTML file itself, eliminating the requirement for the expensive personal computer. In so doing, camera 110 can make the HTML files created in accordance with the present invention directly available over the Internet, as opposed to downloading the HTML files to a separate computer system for display by that system's web server. 29 Referring now to Figure 10, a diagram 800 of camera 110 coupled to Internet 750 is shown. Diagram 800 shows camera 110 coupled to an external modem 801. Camera 110 is coupled to modem 801 via any of several communications means (e.g., USB, IEEE1394, infrared link, etc.). Modem 801 is in turn coupled to a telephone jack 802 at the camera's location. The telephone jack 802 couples modem 801 to one of the modems 803 of an ISP (Internet service provider) 710 via the telephone company's local loop. An ISP 760 is directly coupled to the Internet 750 via a Tl line. Modem 801 is shown as an external modem. However, the functionality of modem 810 can be implemented directly within the electronics of camera 110 (e.g., via a modem ASIC), or alternatively, can be implemented as a software only modem executing on computer 118 within camera 110. As such, it should be appreciated that, at the hardware connectivity level, modem 801 can take several forms. For example, a wireless modem can be used in which case the camera is not connected via an external wire to any land line. Alternatively, there may even be applications in which camera 110 includes suitable electronic components enabling a connection to a conventional computer system network (e.g., ethernet, Apple talk, etc.), which is in turn, directly connected to the Internet (e.g., via a gateway, a firewall, etc.), thereby doing away with the requirement for an ISP. Hence, it should be appreciated that the present invention is not limited to any particular method of accessing the Internet 750. Referring now to Figure 11, a diagram 900 of the connectivity and application software of camera 110 is shown. At the software level, computer 118 of camera 110 hosts a TCP-IP protocol stack (including PPP (Point to Point 3 0 Protocol)), which, as is well-known in the art, enables communication via the Internet. Protocol stack 901 interfaces with the physical connection hardware 902 of camera 110 and the application layer 903. The bottom of protocol stack 901 includes communication hardware interface drivers which interfaces directly with the various communications hardware camera 110 must function with (e.g., USB, IEEE1394, etc.). The top of protocol stack 901 includes software APIs and protocol libraries which interface with web server application 910 running in an applications layer 903. Applications layer 903 interfaces with an operating system 904. Applications layer 903, protocol stack 901, and operating system 904 are instantiated as software modules in DRAM 346 of camera 110. The web server application 910 runs within applications layer 903, along with other software applications which provide camera 110's functionality (e.g., still image downloading, motion detection, aim control for a remote aiming device, and the like). The web server application 910 responds to queries from the user's Internet web browser and other web browsers, which include user requests directed to the camera (e.g., requests for various web pages hosted by camera 110) and communicates with other software applications within applications layer 903. These applications each communicate with operating system 904 of the camera 110, which controls the hardware functionality of camera 110 (e.g., taking pictures, storing pictures, and the like). HTTP requests are received and HTML files are transferred to and from the web server application 910 via protocol stack 901, and communications hardware 902. 3 1 Additional details regarding the hosting and display of web pages within a digital camera, and remote access there to, may be found in US Patent application No. , entitled "A method and system for hosting an Internet web site on a digital camera" (P157), which is incorporated herein by reference. Thus, the present invention provides an inexpensive method and system for capturing images and generating a formatted electronic document which includes those images. The document is readily interchangeable among users using a variety of computer implemented methods, such as, for example, email, LAN WANs, or the Internet. The present invention also provides a process of creating the formatted document including the image which is intuitive and user friendly. In addition, the present invention includes a method and system for inexpensively making the formatted document available via the Internet to web browser equipped users. The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the Claims appended hereto and their equivalents.

Claims: 32 CLAIMS What is claimed is: 1. A method for generating an Internet page description file including images captured by a digital imaging device, the digital imaging device having a display and a computer system, the method comprising the steps of: providing the digital imaging device with a script comprising a set of program instructions; executing the script to display interactive instructions on the display that prompt a user to perform specific operations; and in response to the user performing the specific operations, automatically updating the interactive instructions, such that the user is guided through a series of related image captures to obtain a series of resulting images. 2. The method of claim 1 further comprising the step of: generating an HTML (hypertext markup language) file including the resulting images, wherein the HTML file is formatted in accordance with a predefined model included in the script, such that a formatted HTML file is automatically generated by the digital imaging device. 3. The method of claim 2 further including the step of displaying the interactive instructions on a translucent overlay bar. 4. The method of claim 2 further including the steps of: g) coupling the digital camera to the Internet; and f) making the HTML file available via the Internet by hosting a web server application on the computer system of the digital imaging device. 5. The method of claim 1 further comprising the steps of: 3 3 generating an internet page description file including the resulting images, wherein the internet page description file is formatted in accordance with a predefined model included in the script, such that a formatted internet page description file is automatically generated by the digital imaging device; coupling the digital camera to the Internet; and making the internet page description file available via the Internet by hosting a web server application on the computer system-of the digital imaging device. 6. The method of claim 1, 2, or 5 wherein the step of providing the digital imaging further includes the step of providing the directed image capture sequence by externally loading the program instructions into the digital imaging device. 7. The method of claim 1, 2, 5 or 6 wherein the step of providing the digital imaging further includes the step of providing the program instructions as a text-based script. 8. The method of claim 1, 2, 5 or 7 wherein the step of executing further includes the step of executing the script by the computer system interpreting the text-based script. 9. The method of claim 1, 2, 5 or 8 wherein the step of automatically updating further includes the step of prompting the user for specific information, and entering the specific information on a text entry screen. 10. The method of claim 9 wherein the internet page description file is a hypertext markup language file. 11. A system for generating a formatted document including text and images, the system being associated with a hand held digital imaging device including a computer system and a display, the system comprising: 34 a script comprising a set of program instructions which, when executed by the computer system, cause the digital imaging device to perform the steps of: a) display interactive instmctions on the display that prompt a user to perform specific operations; b) in response to the user performing the specific operations, automatically updating the interactive instructions, such that the user is guided through a sequence of the interactive instmctions adapted to capture information from the user; c) transferring the information captured from the user to a formatted document, wherein the formatted document is formatted in accordance with a predefined model included in the script, such that the formatted document is automatically generated by the digital imaging device. 12. The system of Claim 11 wherein step a) further includes providing a sequence of interactive instmctions for a directed image capture, wherein the script prompts the user through a series of related image captures, resulting in a plurality of stored images. 13. The system of Claim 11 wherein step a) further includes the step of providing the program instructions as a text-based script, and wherein the digital camera guides the user through the sequence of interactive instructions by the computer system interpreting the text-based script. 14. The system of Claim 11, wherein the predefined model comprises a set of programming instructions which determine the formatted appearance of the document. 15. The system of Claim 14, wherein the predefined model is predefined in accordance with a particular purpose of the script such that the formatted document has an appearance in accordance with the particular purpose. 16. The system of Claim 11, wherein the document is an internet page description file which defines a web page. 35 17. The system of Claim 16, wherein the digital imaging device coupled to the Internet and the internet page description file is made available by a web server application executing on the computer system of the digital imaging device.

Inventors: AIHARA TIM TAKAO, SOMERSTEIN RODNEY, AIHARA, TIM, TAKAO, SOMERSTEIN, RODNEY
Applicants: AIHARA TIM TAKAO, FLASHPOINT TECHNOLOGIES INC, SOMERSTEIN RODNEY, AIHARA, TIM, TAKAO, FLASHPOINT TECHNOLOGIES, INC., SOMERSTEIN, RODNEY
Application year: 1999
Main classification: H04N5
IPC codes: G06F17, H04N5, H04N101