Abstract:
A data-processing device is capable of connecting to a storing unit storing a plurality of image files, each of the plurality of image files including image data and additional information. The data-processing device includes a acquiring unit, a creating unit, a determining unit and a recording unit. The acquiring unit acquires the additional information from each of the plurality of image files. The creating unit that creates an annexed information set with respect to each of the plurality of image files. The annexed information set includes the additional information and identifying information corresponding to the additional information, the identifying information identifying the image file. The determining unit determines one of a plurality of pieces of the additional information included in the annexed information sets corresponding to the plurality of image files. The recording unit records, on a recording medium, the image data of the image file identified by the identifying information corresponding to the additional information determined by the determining unit.

Description:
CROSS REFERENCE TO RELATED APPLICATION 
       [0001]    This application claims priority from Japanese Patent Application No. 2007-145165 filed May 31, 2007. The entire content of this priority application is incorporated herein by reference. 
       TECHNICAL FIELD 
       [0002]    The present invention relates to a data-processing device, a method of processing data files, and a computer readable recording medium storing a set of program instructions executable on a data-processing device capable of acquiring additional information added to each image file quickly. 
       BACKGROUND 
       [0003]    Exchangeable image file format (Exif) is known as an image file format standardized by JEIDA (Japanese Electronic Industry Development Association). The Exif format is typically employed for a photograph taken by a digital camera. In the Exif format, the information added to each image file is stored in each image file as Exif information. The Exif information is used when a user selects one from a plurality of image files for printing. For example, the Exif information is date and time when the photograph was taken; type of the digital camera used for taking the photograph; aperture and shutter speed settings. The Exif information is extracted from each image file, and the pieces of extracted the Exif information is listed. The user specifies the image file to be printed on the list. 
         [0004]    Relating the use of this additional information (Exif information), Japanese Patent Application Publication No. 2003-87701 proposes the technique of creating a circle graph based on the additional information of each extracted image file (see [0013] and [0014]). Specifically, image files are read from a memory card. The additional information of the read files (for example, name and size; and date and time of creation) is then extracted for creating a circle graph. The created circle graph indicates what percentage of the memory is consumed by each image file. The size of each image data is presented as the area of the part bordered by two radii. 
         [0005]    In the above the technique, each image file has to be opened every time the additional information thereof is used so that the additional information is acquired from each image file. In general, the following three steps are required for reading a file: opening the file; acquiring information from the file; and then closing the file. This means that these file-opening and closing steps have to be repeated as many times as the number of the image files. As the image files increases in number, the ratio of the time required for the file-opening and closing steps increases relative to the time required for acquiring information from the image files. 
       SUMMARY 
       [0006]    In view of the foregoing, it is an object of the present invention to provide a data-processing device capable of acquiring information added to each image file quickly. 
         [0007]    In order to attain the above and other objects, the invention provides a data-processing device capable of connecting to a storing unit storing a plurality of image files, each of the plurality of image files including image data and additional information. The data-processing device includes a acquiring unit, a creating unit, a determining unit and a recording unit. The acquiring unit acquires the additional information from each of the plurality of image files. The creating unit that creates an annexed information set with respect to each of the plurality of image files. The annexed information set includes the additional information and identifying information corresponding to the additional information, the identifying information identifying the image file. The determining unit determines one of a plurality of pieces of the additional information included in the annexed information sets corresponding to the plurality of image files. The recording unit records, on a recording medium, the image data of the image file identified by the identifying information corresponding to the additional information determined by the determining unit. 
         [0008]    According to another aspect, the present invention provides a method of processing data files, the method including: acquiring additional information from a storing unit, the storing unit storing a plurality of image files, each of the plurality of image files including image data, the additional information and the identifying information, the identifying information identifying the image file; creating an annexed information set with respect to each of the plurality of image files, the annexed information set including the additional information and identifying information corresponding to the additional information, the identifying information identifying the image file; determining one of a plurality of pieces of the additional information included in the annexed information sets corresponding to the plurality of image files; and recording, on a recording medium, the image data of the image file identified by the identifying information corresponding to the additional information determined in the determining step. 
         [0009]    According to another aspect, the present invention provides a computer readable recording medium storing a set of program instructions executable on a data-processing device, instructions including: acquiring additional information from a storing unit, the storing unit storing a plurality of image files, each of the plurality of image files including image data, the additional information and the identifying information, the identifying information identifying the image file; creating an annexed information set with respect to each of the plurality of image files, the annexed information set including the additional information and identifying information corresponding to the additional information, the identifying information identifying the image file; determining one of a plurality of pieces of the additional information included in the annexed information sets corresponding to the plurality of image files; and recording, on a recording medium, the image data of the image file identified by the identifying information corresponding to the additional information determined in the determining step. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         [0010]    The particular features and advantages of the invention as well as other objects will become apparent from the following description taken in connection with the accompanying drawings, in which: 
           [0011]      FIG. 1  is a perspective view of a printer as an example of a data-processing device according to an embodiment of the present invention; 
           [0012]      FIG. 2  is a block diagram showing a electrical configuration of the printer; 
           [0013]      FIG. 3A  schematically shows an example of file information table; 
           [0014]      FIG. 3B  schematically shows an example of Exif information file; 
           [0015]      FIG. 3C  schematically shows the configuration of a memory card; 
           [0016]      FIG. 4  is a flowchart showing an Exif information file creation process according to the embodiment; 
           [0017]      FIG. 5  is a flowchart showing an Exif information file update process according to the embodiment; 
           [0018]      FIG. 6A  schematically shows an example of a file information table during its creation; 
           [0019]      FIG. 6B  schematically shows an example of the file information table after its creation; 
           [0020]      FIG. 6C  schematically shows an example of the Exif information file before its update; 
           [0021]      FIG. 7  is a flowchart showing printing process according to the embodiment; and 
           [0022]      FIG. 8  is a flowchart showing another example of the printing process. 
       
    
    
     DETAILED DESCRIPTION  
       [0023]    A printing device according to an embodiment of the invention will be described while referring to the accompanying drawings wherein like parts and components are designated by the same reference numerals to avoid duplicating description. 
         [0024]      FIG. 1  is a perspective view showing a printer  1  according to the embodiment. The printer  1  is a multifunction device that is integrally provided with a print unit  2  in the lower section and a scan unit  3  in the upper section and possesses a printer function, scanner function, copier function, and facsimile function. The printer  1  may be modified to a single-function printer having no scan unit  3  and, hence, no scanner function or copier function. 
         [0025]    The printer  1  is primarily connected to a computer (not shown) for recording text and images on a recording paper based on text or image data transferred from the computer. 
         [0026]    A control panel  4  is provided on a top front surface of the printer  1  for operating the print unit  2  and scan unit  3 . The control panel  4  is configured of various operating buttons and a liquid crystal display (LCD)  41 . The printer  1  operates based on operating instructions inputted through the control panel  4  and, when connected to a computer, can operate based on instructions that the computer transmits by means of a printer driver. 
         [0027]    The LCD  41  is provided as a rectangle having long sides extending in a width direction indicated by an arrow A. If the dimension in the width direction is employed as the horizontal dimension, the aspect ratio of the LCD  41  becomes 3:8. Specifically, the LCD  41  includes two rectangular independent display screens having an aspect of 3:4 adjacent to one another in the arrow A direction. The display screens are integrally formed as one into the LCD  41 . 
         [0028]    As a user inputs a predetermined instruction to the printer  1 , the printer  1  is controlled by a control unit  20  (see  FIG. 2 ) pursuant to the inputted instruction. The printer  1  operates not only pursuant to an instruction inputted through a control panel  4 , but also pursuant to an instruction given from a computer through a printer driver, a scanner driver, or the like. 
         [0029]    A connection panel  70  is provided at a position below the control panel  4 . The connection panel  70  is positioned above an opening  11 . A USB port  71  is provided in a left-side area of the connection panel  70 . The USB port  71  is a connecter terminal which is connectable with an external device so that the printer  1  and an external device communicate with each other. 
         [0030]    A slot unit  72  is provided at a position on the right side of the connection panel  70 . The slot unit  72  includes a plurality of card slots each of which can receive the insertion of a card-type memory. When a card-type memory is inserted into any of the card slots so that the control unit  20  ( FIG. 2 ) to be described later reads image files from the inserted memory card that is a card-type removable memory, the LCD  41  displays the list including the thumbnail images of the read image files with the Exif information added thereto. When the user selects one from the thumbnail images or one from the pieces of Exif information, the printer  1  prints the image corresponding to the selected thumbnail or the selected Exif information on a recording sheet. 
         [0031]    Next, the structure of the printer  1 , which functions as a data processor, will be described with reference to  FIG. 2 .  FIG. 2  is a block diagram showing the electrical structure of the printer  1 . As shown in  FIG. 2 , the control unit  20  includes a CPU  21 , a ROM  22 , an EEPROM  23 , and a RAM  24 . These components are all connected to ASIC  26  via a bus  25 . 
         [0032]    The CPU  21  executes processes according to various programs stored in the ROM  22 . The ROM  22  stores an Exif information file creation program  22   a , an Exif information file updated program  22   b , and a printing program  22   c.    
         [0033]      FIG. 4  shows an Exif information file creation process to be performed by the Exif information file creation program  22   a . In this process, an Exif information file (see  FIG. 3B ) is created in text format by storing the Exif information added to each image file for each image file.  FIG. 5  shows an Exif information file update process to be performed by the Exif information file update program  22   b . In this process, the Exif information file is updated so that the contents of the Exif information file agrees with the image files stored in the memory card.  FIGS. 7 and 8  show a printing process to be performed by the printing program  22   c . In this process, the image corresponding to the image file selected by the user is printed on a recording sheet through the use of the Exif information added to each image file. 
         [0034]    The EEPROM  23  is a rewritable, nonvolatile memory. The RAM  24  includes an Exif information file memory  24   a  and a file information table memory  24   b . The RAM  24  is used as a memory area or working space for temporarily storing various kinds of data required by the CPU  21  for executing the programs. 
         [0035]    The file information table memory  24   a  stores a file information table which lists the image files stored in the memory card.  FIG. 3A  schematically shows the file information table stored in the file information table memory  24   a . The file information table includes a file name  60 , an update date and time  61 , a file size  62 , an Exif number  63 , and an Exif information-unacquired flag  64 . 
         [0036]    The file name  60  indicates the name of each image file. The update date and time  61  indicates the last date and time when each image file was updated. The file size  62  indicates the size of each image file. These pieces of Exif information are acquired from the image files stored in the memory card, and then stored in the file information table. The Exif number  63  is the unique number assigned to each image file in an Exif information file to be described later. The Exif information-unacquired flag  64  indicates whether or not Exif information has been acquired from each image file. The Exif information-unacquired flag  64  is set to “ON” if the Exif information has not been acquired yet, whereas set to “OFF” if the Exif information has already been acquired. 
         [0037]    If an image file has “OFF” as the Exif information-unacquired flag  64  in file information table, this means that the control unit  20  has acquired the Exif information added to the image file. Therefore, the control unit  20  does not have to open the image file again. The control unit  20  can acquire quickly the Exif information of the image file from the Exif information file to be described later. 
         [0038]    The Exif information file memory  24   b  stores the Exif information file read from the memory card. The Exif information file is described with reference to  FIG. 3B .  FIG. 3B  schematically shows the Exif information file. The Exif information file stores an Exif number  65 ; a file name  66 ; a shooting date and time  67 ; a camera type  68 ; and an update date and time  69 . 
         [0039]    The file name  60 , update date and time  61 , file size  62 , file name  66 , shooting date and time  67 , camera type  68 , and update date and time  69  are stored in the RAM  24 , based on the Exif information added to each image file as an Exif header stored in the memory card. The Exif header-added image file is employed for general-purpose applications. Therefore, the present invention is available in various situations. 
         [0040]    The Exif number  65  indicates the unique number assigned to each image file. The file name  66  indicates the name of each image file. The shooting date and time  67  indicates the date and time when the image of each image file was shot. The camera type  68  indicates the type of the digital camera with which each image file was shot. The update date and time  69  indicates the last date and time when each image file was updated. The Exif information file can also include information regarding aperture and shutter speed settings. 
         [0041]    The Exif information file stores the Exif information of each image file in text format. The control unit  20  can read the Exif information of each image file from the Exif information file. The control unit  20  does not have to open each image file every time the control unit  20  requires the Exif information thereof. Therefore, the control unit  20  can acquire the Exif information of each image file more quickly than the case where the control unit  20  opens each image file to acquire the Exif information thereof. 
         [0042]    Returning to  FIG. 2 , the ASIC  26  is connected to a panel gate array  27  (panel GA  27 ) which controls operation keys  40  for allowing the user to input an instruction to the printer  1 . The ASIC  26  is connected to an LCD controller  28  which controls a display screen of the LCD  41 . The ASIC  26  is connected to a parallel I/F  29  and a USB port  71  for transmitting or receiving data to or from the computer by way of a parallel cable or a USB cable. The ASIC  26  is connected to a speaker  74  through an amplifier  73 . The ASIC  26  is also connected to a real time clock (RTC)  18  as a chip which works as a time keeper. A battery  18   a  is connected to the RTC  18  so that the RTC  18  can keep working even while no power is supplied. The ASIC  26  is further connected to a network control unit (NCU)  31 . The NCU  31  is connected to a modem  32 . 
         [0043]    The ASIC  26  controls the operations of the print unit  2 , a scan unit  3 , the control panel  4 , and the slot unit  72 , pursuant to the instruction given by the CPU  21 . Specifically, the ASIC  26  controls a motor for driving the print unit  2 ; an inkjet recording head; a motor for driving an ADF included in the scan unit  3 ; an image reading unit; and the memory card mounted in the slot unit  72 . 
         [0044]    The configuration of a memory card to be inserted into one of the card slots included in the slot unit  72  is briefly described with reference to  FIG. 3C .  FIG. 3C  schematically shows the configuration of the memory card. Each image file stored in the memory card is managed in clusters in a file allocation table (FAT). A typical logical format is employed for the memory card. The typical logical format includes in the following order from the top: a master boot sector  50 ; an unassigned region  51 ; a partition boot sector  52 ; a FAT region  53 ; a secondary FAT region  54 ; a root directory  55 ; and a data region  56 . The memory card according to this embodiment has a storage capacity of 16 MB. The numbers “0-31999” attached to the immediate left of each section included in the memory card, indicate logical sector numbers. 
         [0045]    The master boot sector  50  is provided at the first sector of the memory card. The master boot sector  50  stores information as to by which OS and how the CPU  21  is started. The partition boot sector  52  stores partition information contained in the master boot sector  50 . The FAT region  53  stores the busy condition of the memory card, including the following information: which sectors an image file occupies on the memory card; how the sectors are joined to each other; which sectors are vacant; and which sectors are bad. The secondary FAT region  54  is a region obtained by copying the FAT region  53 . The root directory  55  is the top-most directory in a tree-like hierarchy. All the image files on the memory card have to belong to any directory, and the directories other than the root directory have to belong to different directories. If the memory card is divided into a plurality of partitions, each partition has its own root directory. The data region  56  is a region which stores image files. 
         [0046]    Next, the Exif information file creation process is described with reference to  FIG. 4 . In the Exif information file creation process, the CPU  21  creates an Exif information file in text-format by storing the Exif information added to each image file contained in the memory card, for each image file. The Exif information file creation process is performed at predetermined intervals. 
         [0047]    In S 401 , the CPU  21  determines whether or not the printer  1  is in standby state. The standby state according to this embodiment means a state that no function is performed out of a copy function, a facsimile function, a telephone function, and a printer function. If the CPU  21  determines that the printer  1  is in standby state (S 401 : Yes), the CPU  21  determines whether or not the memory card has been mounted in one of the card slots in S 402 . 
         [0048]    If the memory card has been mounted in one of the card slots (S 402 : Yes), the CPU  21  starts acquiring or fetching Exif information in S 403 . If any one of the functions is performed (S 401 : No), alternatively, if no memory card has been mounted (S 402 : No), the CPU  21  repeatedly performs the steps starting from S 401 . 
         [0049]    In the Exif information file creation process, the CPU  21  starts creating an Exif information file on the condition that no function is performed out of the copy function, the facsimile function, the telephone function, and the printer function. This means that the copy function, the facsimile function, the telephone function, and the printer function are not delayed due to the Exif information file creation process. 
         [0050]    As the CPU  21  starts acquiring Exif information in S 403 , the CPU  21  selects one from the image file names on the file information table stored in the file information table memory  24   a  in S 404 . If the file information table does not stored in the file information table memory  24   a , the CPU  21  executes the information table update process ( FIG. 5 ) will be described later, and returns the Exif information file creation process. In S 405 , the CPU  21  determines whether or not the Exif information-unacquired flag  64  corresponding to the selected image file name is “ON”, specifically, whether or not the Exif information of the file corresponding to the selected file name has not been acquired yet. 
         [0051]    If the CPU  21  has determined that the Exif information-unacquired flag  64  is “ON”, specifically, that the Exif information of the file corresponding to the selected file name has not been acquired (S 405 : YES), the CPU  21  then determines whether or not the image file corresponding the selected file name contains an Exif image in S 406 . On the other hand, if the CPU  21  has determined that the Exif information-unacquired flag  64  is “OFF”, specifically, that the Exif information  64  of the file corresponding to the selected file name has been acquired (S 405 : NO), the CPU  21  proceeds to S 411  to be described later. 
         [0052]    If the CPU  21  has determined that the file corresponding to the selected file name contains an Exif image (S 406 : Yes), the CPU  21  opens the image file and acquires Exif information from the image file (shooting date and time, and camera type in this embodiment) in S 407 . In S 408 , the CPU  21  creates as an Exif information file and the stores the acquired Exif information therein. In S 409 , the CPU  21  stores the number which is the same as the Exif number  65  corresponding to the Exif information contained in the Exif information file, in the file information table. In this case, the stored number is associated with the selected image file name. Then the CPU  21  proceeds to S 411 . 
         [0053]    On the other hand, the CPU  21  has determined that the file corresponding the selected file name contains an Exif image (S 406 : No), the CPU  21  stores “Not_Exif” in the Exif information file so as to indicate that the file corresponding to the selected file name contains no Exif image in S 410 . The CPU  21  then proceeds to S 411 . 
         [0054]    In S 411 , the CPU  21  determines whether or not all the image file names stored in the file information table have passed through all the steps starting from S 404 . If all the image file names have passed through all the steps (S 411 : Yes), the CPU  21  writes the created Exif information file in a specified directory in the memory card in S 412 . The CPU  21  exits this process. 
         [0055]    The Exif information file is created, and the created Exif information file is stored in the memory card. By storing the created Exif information file in the memory card, the printer  1  requires less memory. Furthermore, since the memory card is likely to store the image files corresponding to the Exif information contained in the Exif information file, the CPU  21  efficiently acquire the Exif information of the image files stored in the memory card, from the Exif information file, efficiently. 
         [0056]    Next, the Exif information file update process is described with reference to  FIGS. 5 through 6C .  FIG. 5  is a flowchart showing the Exif information file update process. In the Exif information file update process, the Exif information file is updated so as to reflect the change regarding the image files stored in the memory card. 
         [0057]    In S 501 , the CPU  21  determines whether or not the memory card has been mounted in one of the card slots. If the memory card has been mounted in one of the card slots (S 501 : Yes), the CPU  21  then determines whether or not the memory card is operable in S 502 . If the CPU  21  has determined that the memory card is operable (S 502 : Yes), the CPU  21  reads the directory entry of the mounted memory card, and then stores the name, the update date and time, and the size of each image file in the file information table of the file information table memory  24   a  in S 503 . In S 504 , the CPU  21  sets all the Exif information flags  64  on the file information table to “ON”. Specifically, the CPU  21  regards all the pieces of Exif information as unacquired. 
         [0058]    Specifically, as shown in  FIG. 6A , the file information table stores the file name  60 , the update date and time  61 , and the file size  62 , for each image file. In the file information table, all the Exif information flags  64  are set to “ON”, and an Exif number is added as will be described later. On the other hand, if no memory card has been mounted (S 501 : No), alternatively, if the memory card is not operable (S 502 : No), the CPU  21  exits the Exif information file update process. 
         [0059]    As the file information table is created as shown in  FIG. 6A , the CPU  21  determines whether or not the memory card stores any Exif information file in S 505 . If any Exif information file is stored (S 505 : Yes), the CPU  21  reads the Exif information file and then stores the read Exif information file in the Exif information file memory  24   b  in S 506 . In this embodiment, the Exif information file shown in  FIG. 6C , which is contained in the memory card, is stored in the Exif information file memory  24   b.    
         [0060]    In S 507 , the CPU  21  selects one image file name from the Exif information file stored in the Exif information file memory  24   b . In S 508 , the CPU  21  starts searching for the image file corresponding to the selected file name in the file information table created in the S 503 . 
         [0061]    In S 509 , the CPU  21  determines whether or not the file information table contains the file name which is the same as the selected file name. If the CPU  21  has determined that the file information table contains the same file name (S 509 : Yes), the CPU  21  then compares the update date and time stored in the file information table corresponding to the same file name, with the update date and time corresponding to the selected file name in S 510 . In S 511 , the CPU  21  determines whether or not these files are identical in terms of update date and time. 
         [0062]    If the files are identical (S 511 : Yes), the CPU  21  determines that the file corresponding to the selected file name has been stored in the file information table in S 512 . The CPU  21  sets the Exif information-unacquired flag  64  corresponding to the file having the same name as the selected file name to “OFF” in the file information table. The CPU  21  then stores the number which is the same as the Exif number  65  of the selected file name stored in the Exif information file, as an Exif number  63  in the file information table. The CPU  21  then proceeds to S 515 . 
         [0063]      FIG. 6A  shows the file information table during its creation.  FIG. 6B  shows the file information table after its creation.  FIG. 6C  shows the Exif information file stored in the Exif information file memory  24   b  before its update. For example, a file name  66  of “001jpg” with an update date and time  69  of “2006/03/14/00:00:00” is selected from the image file names contained in the Exif information file shown in  FIG. 6C , the image file having the same update date and time as the file name is included in the file information table shown in  FIG. 6A . Accordingly, the CPU  21  sets the Exif number  63  of the image file name in the file information table to “1”, which is the same Exif number as the selected file name as shown in  FIG. 6B . At the same time, the CPU  21  sets the Exif information-unacquired flag  64  from “ON” to “OFF”, and the Exif information is set from unacquired to acquired. 
         [0064]    Returning to  FIG. 5 , if the CPU  21  has determined that the file information table has the same file name as the name of the selected image file (S 509 : No), the CPU  21  determines that the selected image file has already been deleted from the currently mounted memory card, and deletes the information regarding the selected image file from the Exif information file in S 513 . The CPU  21  then proceeds to S 515 . 
         [0065]    For example, if a file name  66  of “010jpg” with an update date and time  69  of “2007/01/09/23:59:59” is selected from the image file names contained in the Exif information file shown in  FIG. 6C , the image file having this file name is not included in the file information table shown in  FIG. 6A . Therefore, the CPU  21  deletes the information regarding the image file whose file name  66  is “010jpg” and whose update date and time  69  is “2007/01/09/23:59:59” from the Exif information file shown in  FIG. 6C . 
         [0066]    If the CPU  21  determines that the update dates and times are not identical (S 511 : No), the CPU  21  determines that the image file of the name selected from the Exif information file and the image file stored in the memory card are different although their file names are identical. Therefore, the CPU  21  deletes the information regarding the selected file name from the Exif information file in S 514 . The CPU  21  then proceeds to S 515 . 
         [0067]    Specifically, if a file name  66  of “002jpg” with an update date and time  69  of “2006/08/20/01:23:45” is selected from the image file names contained in the Exif information file shown in  FIG. 6C , the image file having the same update date and time is not included although the image file having this file name is included. Therefore, the CPU  21  deletes the information regarding the image file whose file name  66  is “002jpg” and whose update date and time  69  is “2006/08/20/01:23:45” from the Exif information file shown in  FIG. 6C . 
         [0068]    Accordingly, the printer  1  can delete an unnecessary piece of the Exif information from the Exif information file. At the same time, the printer  1  can keep the other necessary pieces of the EXif information in the Exif information file. 
         [0069]    Returning to  FIG. 5 , in S 515 , the CPU  21  determines whether or not all the image file names stored in the Exif information file read from the memory card in S 506  have passed through all the steps starting from S 507 . If all the image files have passed through all the steps (S 515 : Yes), the CPU  21  exits this process. If all the image files have not passed through all the steps yet, the CPU  21  repeatedly performs the steps starting from S 507 . In the Exif information file update process, the CPU  21  can update the Exif information file so that the information stored in the Exif information file and the information regarding the image files currently stored in the memory card agree with each other in terms of content. 
         [0070]    Next, the printing process is described with reference to  FIG. 7 . In the printing process, by using the Exif information corresponding to a plurality of image files stored in the memory card by the user, the CPU  21  selects one from the image files so as to print the image of the selected image file on a recording sheet. This process is performed, for example, pursuant to the user&#39;s instruction. 
         [0071]    In S 701 , the CPU  21  selects one image file name from the information stored in the file information table. In S 702 , the CPU  21  determines whether or not the Exif information-unacquired flag  64  of the selected file name is “OFF”, specifically, whether or not the Exif information of the file corresponding to the selected file name has been acquired. If the CPU  21  has determined that the Exif information-unacquired flag  64  is “OFF” (S 702 : Yes), the CPU  21  acquires the Exif information of the file of the selected name from the Exif information file in S 703 . Then the CPU  21  proceeds to S 705 . 
         [0072]    On the other hand, if the CPU  21  has determined that the Exif information-unacquired flag . 64  is “ON” instead of “OFF”, specifically, that the Exif information has not been acquired yet (S 702 : No), the CPU  21  specifies the image file corresponding to the selected file name from the memory card, opens the specified image file stored in the memory card, and then acquires the Exif information from the image file in S 704 . The CPU  21  proceeds to S 705 . 
         [0073]    In S 705 , the CPU  21  determines whether or not all the image file names stored in the file information table have passed through all the steps from S 701 . If all the image file names have passed through all the steps (S 705 : Yes), the CPU  21  then proceeds to S 706 . If all the image file names have not passed through all the steps yet (S 705 : No), the CPU  21  repeatedly performs the steps starting from S 701 . 
         [0074]    In S 706 , the CPU  21  displays the list of the Exif information acquired in S 703  and S 704  on the LCD  41  for each image file. In S 707 , the CPU  21  determines whether or not the user selects any image file name from the displayed Exif information list. This selection is made by the user through the operation keys  40 . If the user selects no image file name even after a predetermined period of time (S 707 : No), the CPU  21  exits the process. If the user selects any image file name after a predetermined period of time (S 707 : Yes), the CPU  21  opens the image file of the selected image file name and prints the image of the selected image file name on a recording sheet in S 708 . Then the CPU  21  exits the process. 
         [0075]    In the printing process, the CPU  21  acquires the Exif information from the Exif information file in S 702  if the Exif information-unacquired flag  64  thereof is “OFF”, specifically, if the Exif information has already been acquired. Therefore, the CPU  21  does not have to open all the image files stored in the memory card so as to acquire the Exif information thereof. This allows the CPU  21  to extract the Exif information from each image file quickly. 
         [0076]    Next, another printing process, which is different from the printing process shown in  FIG. 7 , is described with reference to  FIG. 8 . In this printing process, if the user selects an image file from the image files stored in the memory card by specifying a condition in terms of Exif information, the CPU  21  prints the image of the selected image file on a recording sheet. 
         [0077]    In S 801 , the CPU  21  determines whether or not the user has inputted any condition in terms of Exif information for selection. The CPU  21  displays selectable Exif information conditions on the LCD  41  in the form of a menu so that the user makes a selection from the menu by using the operation keys  40 . If the conditions imposed on the Exif information are inputted (S 801 : Yes), the CPU  21  selects one from the image file names stored in the file information table in S 701 . In S 702 , the CPU  21  determines whether or not the Exif information-unacquired flag  64  of the selected image file name is “OFF”. If the Exif information-unacquired flag  64  is “OFF” (S 702 : Yes), the CPU  21  acquires the Exif information from the Exif information file in S 703 . The CPU  21  then proceeds to S 806 . 
         [0078]    On the other hand, if the Exif information-unacquired flag  64  is “ON” (S 702 : No), the CPU  21  specifies the file corresponding to the selected file name in the memory card, and then opens the file so as to acquire the Exif information thereof in S 704 . The CPU  21  then proceeds to S 806 . 
         [0079]    In S 806 , the CPU  21  determines whether or not the Exif information acquired in S 703  satisfies the Exif information condition inputted in S 801 , or whether or not the Exif information acquired in S 704  satisfies the Exif information condition inputted in S 801 , in S 806 . If the satisfaction is found (S 806 : Yes), the file of the selected name is extracted in S 807 . The CPU  21  then proceeds to S 705 . On the other hand, if no satisfaction is found in S 806 , the CPU  21  skips S 807  to move on to S 705 . 
         [0080]    In S 705 , the CPU  21  determines whether or not all the image file names stored in the file information table  24   b  have passed through all the steps from S 701 . If all the image file names have not passed through all the steps yet (S 705 : No), the CPU  21  repeatedly performs the steps starting from the S 701 . If all the image files have passed through all the steps (S 705 : Yes), the CPU  21  executes the process of S 809 . 
         [0081]    In S 809 , the CPU  21  displays the list of the image files extracted in S 807  on the LCD  41 . In S 707 , the CPU  21  determines whether or not the user selects any image file name from the displayed list. Note that the user makes this selection through the operation keys  40 . If the user has selected no image file name even after a predetermined period of time (S 707 : No), the CPU  21  ends the printing process. If the user has selected any image file name after a predetermined period of time (S 707 : Yes), the CPU  21  prints the image of the selected image file name on a recording sheet in S 708 . The CPU  21  ends the printing process. 
         [0082]    In this printing process, if the Exif information-unacquired flag  64  is “OFF” (S 702 : Yes), the CPU  21  does not have to open all the image files stored in the memory card so as to acquire the Exif information thereof. This allows the CPU  21  to extract the image file having the Exif information identical to the Exif information selected by the user, thereby printing the image of the selected file name quickly. 
         [0083]    With this construction, the CPU  21  is operated when an operation instruction is inputted via the operation keys  40  by user of the printer  1 . Therefore, the Exif information file can be created whenever the user wants. 
         [0084]    While the invention has been described in detail with reference to the embodiments thereof, it would be apparent to those skilled in the art that various changes and modifications may be made therein without departing from the spirit of the invention. 
         [0085]    In the foregoing embodiment, the Exif information file creation process is performed while the printer  1  is in standby state. However, the Exif information file creation process can be performed when the user instructs the CPU  21  to perform the process. Furthermore, the Exif information file creation process can be performed after the LCD  41  displays the thumbnail image of each image file. If the Exif information file creation process is performed after the thumbnail images are displayed, this means that each image file has been opened at least once when the Exif information file creation process is performed. Therefore the process of opening each image file only for creating the Exif information file can be omitted. 
         [0086]    In the forgoing embodiments, the printer  1  is primarily connected to a computer (not shown) for recording text and images on a recording paper based on text or image data transferred from the computer. However, the printer  1 . may also be connected to an external device such as a digital camera and may record image data inputted from the digital camera on a recording paper. Also, the printer  1  may be loaded with a memory card or other storage medium and may be capable of recording image data stored on the storage medium on a recording paper. 
         [0087]    Further, since the Exif information contains both the name of an image file or the creation date and time thereof, the printer  1  can check whether or not the Exif information contained in the Exif information file and the Exif information stored in the RAM  24  are identical with each other more correctly. Alternatively, since Exif information may contain either one of the name of an image file or the creation date and time thereof, the printer  1  can check whether or not the Exif information contained in the Exif information file and the Exif information stored in the RAM  24  are identical with each other with less amount of memory. 
         [0088]    In the forgoing embodiments, in the process of S 708 , the CPU  21  prints, on the recording sheet, an image based on selected file name by user. However, in S 708 , the CPU  21  can record, on a recording storage medium, the image of the image file identified by the file name corresponding to the Exif information selected by the user. 
         [0089]    In the second embodiment, the list of the Exif information is displayed on the LCD  41  so that the user can select one of the Exif information. However, the process of S 809  and S 707  as shown in  FIG. 8  can be omitted, and the CPU  21  can prints an image based on the image file identified by the Exif information extracted in the process of S 807 .