Patent Publication Number: US-6223190-B1

Title: Method and system for producing an internet page description file on a digital imaging device

Description:
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. 
     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&#39;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&#39;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&#39;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&#39;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: 
     FIG. 1 shows a block diagram of a digital camera for use in accordance with the present invention. 
     FIG. 2 shows a block diagram of an imaging device in accordance with one preferred embodiment of the present invention. 
     FIG. 3 shows a block diagram of a computer in accordance with one preferred embodiment of the present invention. 
     FIG. 4 shows a memory map of a DRAM in accordance with one embodiment of the present invention. 
     FIG. 5A shows a top view diagram depicting the preferred hardware components of the camera from FIG.  1 . 
     FIG. 5B shows a back view diagram depicting the preferred hardware components of the camera from FIG.  1 . 
     FIG. 6A shows a diagram of a first directed image capture screen in accordance with one embodiment of the present invention. 
     FIG. 6B shows a diagram of a second directed image capture screen in accordance with one embodiment of the present invention. 
     FIG. 7 shows a block diagram illustrating the contents of a ROM and DRAM of a the camera from FIG.  1 . 
     FIG. 8 is a flow chart illustrating an exemplary process of installing and running a script in accordance with one embodiment of the present invention. 
     FIG. 9 shows a web page as described by an HTML file created by a script in accordance with one embodiment of the present invention. 
     FIG. 10 shows a diagram of a digital camera of the present invention coupled to the Internet via an ISP and a dial-up connection. 
     FIG. 11 shows a diagram of the connectivity and application software of the camera from FIG. 10 is shown. 
    
    
     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. 
     Referring now to FIG. 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 FIG. 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 , motors  234  and timing generator  226 . From interface  232 , the raw image data passes over system bus  116  to computer  118 . 
     Referring now to FIG. 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 LCD  406 , which in addition to the LCD screen  402 , are the hardware elements of the camera&#39;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 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 FIG. 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 . 
     FIGS. 5A and 5B are diagrams depicting the preferred hardware components of the camera&#39;s  110  user interface  408 . FIG. 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 . FIG. 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  426   a  and  426   b.    
     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 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&#39;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 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&#39;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 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&#39;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. 
     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 FIGS. 6A and 6B, diagrams illustrating example directed image capture screens are shown. FIGS. 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 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 FIG. 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 FIG.  6 B. 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 user to input the owner&#39;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&#39;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 . 
     FIG. 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 . 
     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  (FIG. 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, 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  (FIG.  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&#39;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 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. 
     FIG. 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 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 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&#39;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, 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, fileId) 
               
               
                 WriteLine (fileId, “&lt;html&gt;”) 
               
               
                 WriteLine (fileId, “”) 
               
               
                 WriteLine (fileId, “&lt;head&gt;”) 
               
               
                 WriteLine (fileId, “ &lt;!-- To change the window title, replace the words 
               
               
                 Christopher Realty, Inc.\” --&gt;”) 
               
               
                 WriteLine (fileId, “ &lt;!-- below with whatever words you want to appear --&gt;”) 
               
               
                 WriteLine (fileId, “title&gt;Christopher Realty, Inc. &lt;/title&gt;”) 
               
               
                 WriteLine (fileId, “&lt;/head&gt;”) 
               
               
                 WriteLine (fileId, “”) 
               
               
                 WriteLine (fileId, “&lt;BODY BGCOLOR= \“#FFFFCC\“&gt;”) 
               
               
                 WriteLine (fileId, “&lt;P&gt;&lt;IMG SRC=\“logo.gif\” WIDTH= \“468\” 
               
               
                 HEIGHT= \“53\” ALIGN= \ “BOTTOM\ ” BORDER= \ “0\”&lt;&gt;/P&gt;”) 
               
               
                 #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 WindHuff Lane”, 0) 
               
               
                 GetOption (choice) 
               
               
                 if choice == 1 
               
            
           
           
               
               
            
               
                   
                 WriteLine (fileId, “&lt;P&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT SIZE= \“5\”&gt;&lt;B&gt;401 Cristobal 
               
            
           
           
               
            
               
                 Street&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;”) 
               
            
           
           
               
               
            
               
                   
                 WriteLine (fileId, “&lt;TABLE BORDER=0 cellpadding=0&gt;”) 
               
               
                   
                 WriteLine (fileId, “&lt;TR&gt;”) 
               
               
                   
                 footage = 2300 
               
               
                   
                 acreage = “1” 
               
               
                   
                 age = 12 
               
            
           
           
               
            
               
                 end 
               
               
                 ifchoice == 2 
               
            
           
           
               
               
            
               
                   
                 WriteLine (fileId, “&lt;P&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT SIZE= \“5\”&gt;&lt;B&gt;958 Willowleaf 
               
            
           
           
               
            
               
                 Drive&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;”) 
               
            
           
           
               
               
            
               
                   
                 WriteLine (fileId, “&lt;TABLE BORDER=0 cellpadding=0&gt;”) 
               
               
                   
                 WriteLine (fileId, “&lt;TR&gt;”) 
               
               
                   
                 footage = 3500 
               
               
                   
                 acreage = “¾ 
               
               
                   
                 age = 5 
               
            
           
           
               
            
               
                 end 
               
               
                   
               
            
           
         
       
     
     Referring now to FIG. 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 FIG. 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&#39;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 FIG. 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 page 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&#39;s web server. 
     Referring now to FIG. 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&#39;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&#39;s local loop. An ISP  760  is directly coupled to the Internet  750  via a T1 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 FIG. 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 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 &#39;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&#39;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 . 
     Additional details regarding the hosting and display of web pages within a digital camera, and remote access there to, may be found in U.S. patent application Ser. No. 09/044,644, entitled “A method and system for hosting an Internet web site on a digital camera”, 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.