US20140009793A1 - Apparatus and method for outputting layout data, and storage medium - Google Patents
Apparatus and method for outputting layout data, and storage medium Download PDFInfo
- Publication number
- US20140009793A1 US20140009793A1 US13/934,757 US201313934757A US2014009793A1 US 20140009793 A1 US20140009793 A1 US 20140009793A1 US 201313934757 A US201313934757 A US 201313934757A US 2014009793 A1 US2014009793 A1 US 2014009793A1
- Authority
- US
- United States
- Prior art keywords
- layout data
- image
- template
- output
- data generation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 28
- 238000011156 evaluation Methods 0.000 claims description 37
- 230000006870 function Effects 0.000 description 156
- 238000012545 processing Methods 0.000 description 56
- 238000009877 rendering Methods 0.000 description 12
- 230000015654 memory Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 241000167854 Bourreria succulenta Species 0.000 description 3
- 235000019693 cherries Nutrition 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/125—Page layout or assigning input pages onto output media, e.g. imposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1208—Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1242—Image or content composition onto a page
- G06F3/1243—Variable data printing, e.g. document forms, templates, labels, coupons, advertisements, logos, watermarks, transactional printing, fixed content versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1284—Local printer device
Definitions
- the present invention relates to an apparatus and a method for outputting layout data in which an object is arranged on a template, and a storage medium.
- Japanese Patent Application Laid-Open No. 2007-310553 describes a technique for displaying a layout image corresponding to a start time and date when a layout image generation program has started. More specifically, Japanese Patent Application Laid-Open No. 2007-310553 describes the technique for determining date/time information or event information corresponding to the start time and date, and generating a layout image using an image and a template including the date/time information or the event information.
- an image and a template are selected based only on the date/time information, the image and the template are selected regardless of in what kind of event the image has been photographed at the date and time indicated by the date/time information. Thus, for example, if there are a plurality of events on the same date, images of the plurality of events may be selected in a mixed manner.
- the image and the template may be selected that are inappropriate for the date and time of outputting the layout image.
- the case is considered of an event of which date varies by individual, such as a birthday.
- An image and a template related to a birthday are selected even if it is the birthday of a particular person.
- an image and a template related to a person other than a desired person may be selected.
- the present invention relates to an image processing apparatus and an image processing method that are capable of outputting layout data in which an object appropriate for an output timing of the layout data is arranged on an appropriate template, and a storage medium.
- an apparatus includes an acquiring unit configured to acquire timing information indicating timing at with which an object to be arranged to a template is output and corresponds to a combination of a plurality of types of attributes of the object, a first selecting unit configured to select an object corresponding to the combination, based on output timing at with which layout data is output and the timing indicated by the timing information acquired by the acquiring unit, a second selecting unit configured to select a template corresponding to at least one type of an attribute among the plurality of types, and an outputting unit configured to generate layout data with which the object selected by the first selecting unit is arranged to the template selected by the second selecting unit, and to output the generated layout data.
- FIG. 1 is a block diagram illustrating an exemplary configuration of a host computer.
- FIG. 2 illustrates a structure of an image file.
- FIG. 3 illustrates a layout data generation program
- FIG. 4 depicts example information to be registered in an image database.
- FIG. 5 is a flow chart illustrating image grouping processing.
- FIG. 6 illustrates settings of a person profile with respect to an image group.
- FIG. 7 illustrates settings of event information with respect to date/time information.
- FIG. 8 illustrates an example of a layout data generation condition.
- FIG. 9 illustrates a data structure of a template.
- FIG. 10 is a flow chart illustrating an example of image selection processing.
- FIG. 11 illustrates examples of evaluation items to be used to select a layout data generation condition.
- FIG. 12 is a flow chart illustrating an example of template selection processing.
- FIG. 13 illustrates an example of a configuration of a template.
- FIGS. 14A and 14B together comprise a flow chart illustrating an example of template selection processing.
- FIG. 15 illustrates examples of printer information and template selection criterion based on the printer information.
- FIG. 16 illustrates a layout data generation condition in which keywords are registered by a user.
- FIG. 1 is a block diagram illustrating a configuration of a host computer 100 which is an example of an apparatus according to the present invention.
- the host computer 100 is connected to a printer 105 and a monitor 106 .
- the host computer 100 includes application software 101 for generating layout data according to the present exemplary embodiment.
- the application software 101 issues a group of various rendering process commands (an image rendering command, a text rendering command, and a graphics rendering command) indicating an output image, and inputs the group of various rendering process commands to a monitor driver 104 via an operating system (OS) 102 .
- the monitor driver 104 then causes the monitor 106 to display an image corresponding to the various rendering process commands issued by the application software 101 .
- the application software 101 inputs the group of rendering commands to a printer driver 103 via the OS 102 .
- the printer driver 103 is software for processing the group of rendering commands to generate print data, and causing the printer 105 to print an image corresponding to the print data.
- the host computer 100 includes hardware such as a central processing unit (CPU) 108 , a hard disk (HD) 107 , a random access memory (RAM) 109 , a read-only memory (ROM) 110 , and so on.
- the host computer 100 is also connected to operation devices (a mouse, a keyboard, a touch panel, and the like) (not illustrated).
- the HD 107 and the ROM 110 store various types of data and programs.
- a program corresponding to the application software 101 is stored in the HD 107 or the ROM 110 , the application software 101 is installed into the host computer 100 .
- the HD 107 and the ROM 110 also store a program corresponding to the OS 102 and programs corresponding to the printer driver 103 and the monitor driver 104 .
- the CPU 108 In response to an instruction issued by a user and input to the host computer 100 via any of the operation devices, the CPU 108 loads the above-described programs stored in the HD 107 and the ROM 110 into the RAM 109 to execute the programs. Accordingly, functions of the application software 101 , the OS 102 , the printer driver 103 , and the monitor driver 104 can be achieved.
- An instruction issued by a user may be input to the host computer 100 not only via the operation devices but also via a touch panel.
- the application software 101 generates various types of data to be output.
- Examples of the types of data to be output include text data categorized into text such as characters, graphics data categorized into graphics such as figures, and image data categorized into photographic images.
- As output processing of the various types of data it is possible, for example, to display output image data on the monitor 106 , output the output image data to the printer 105 , and transmit the output image data to an external apparatus.
- the application software 101 makes a print output request to the OS 102 .
- the application software 101 issues to the OS 102 a group of rendering commands in which a text data portion is formed by a text rendering command, a graphics data portion is formed by a graphics rendering command, and an image data portion is formed by an image rendering command.
- the host computer 100 illustrated in FIG. 1 arranges an object such as an image on a template according to the program corresponding to the application software 101 , so that a layout image is generated.
- FIG. 2 illustrates a structure of an image file of an image to be arranged on a template.
- an image file of an image to be arranged is an image file of an image photographed by a digital camera. If the image file of the image photographed by the digital camera is based on, for example, the exchangeable image file format (Exif) standard, the image file includes an image data portion 202 together with a metadata portion 201 which is information regarding the image.
- the metadata portion 201 information pieces such as an image size (the number of pixels), a photographing date and time, photographing camera information, a photographing location, and a rating are recorded. The rating is a result of an evaluation of the image data portion 202 .
- the evaluation result is recorded according to the states of exposure and focus during the photographing of the image by the digital camera or in image editing application software. Further, a user can manually set the evaluation result. According to the present exemplary embodiment, it is also possible to deal with an image file not including the metadata portion 201 illustrated in FIG. 2 . For example, it is possible to use time stamp information included in the image file, instead of the photographing date and time included in the metadata portion 201 .
- FIG. 3 illustrates the functions of the application software 101 .
- An image management function 305 has a function of loading an input image file 304 (the image file illustrated in FIG. 2 ) into the host computer 100 .
- the input image file 304 is stored in an internal memory (e.g., the HD 107 ) of the host computer 100 in FIG. 1 , or stored in a memory of a device connected to the host computer 100 .
- the image management function 305 loads the input image file 304 therein from either of these memories.
- the image management function 305 has a function of managing the input image file 304 including the metadata portion 201 and the image data portion 202 together with information in an image database 306 illustrated in FIG. 4 .
- the image database 306 is created in the HD 107 or the RAM 109 .
- the image management function 305 also has a function of extracting a person included in the image of the input image file 304 .
- the image management function 305 can create a group with respect to each person included in an image, and categorize a plurality of images into the created groups in the image database 306 .
- the image management function 305 analyzes the image data portion 202 of the input image file 304 , and if a person is included in the image, performs face detection. Then, the image management function 305 categorizes the image by the feature amount of the face calculated based on the detection.
- the image management function 305 can group a plurality of images with respect to each person.
- the image management function 305 also has a function of grouping image files with respect to each photographing date in the image database 306 based on the photographing date information included in the metadata portion 201 of the input image file 304 .
- the details of the image file grouping processing performed by the image management function 305 will be described with reference to FIG. 5 .
- a layout data generation function 301 arranges an image stored in the image database 306 on a template 303 to generate layout data.
- the layout data generation function 301 selects a template to be output and an image to be output according to a layout data generation condition 302 .
- the template 303 is an image in which an image of an image file is arranged.
- the HD 107 or the ROM 110 stores a plurality of templates among which a template to be output is selected.
- the layout data generation condition 302 is a condition for an image to be arranged or a template on which an image is arranged when the layout data generation function 301 generates layout data.
- the layout data generation function 301 selects an image from the image database 306 or a template from among the plurality of templates according to the layout data generation condition 302 . The details of the processing of selecting an image and a template to be output will be described below with reference to FIGS. 10 and 12 .
- a layout data presentation function 307 has a function of outputting layout data generated by the layout data generation function 301 and presenting the layout data in such a form as to be recognized by a user.
- the layout data presentation function 307 outputs, via the OS 102 and the printer driver 103 , layout data to the printer 105 connected to the host computer 100 , and causes the printer 105 to print an image corresponding to the layout data.
- the layout data presentation function 307 outputs, via the OS 102 and the monitor driver 104 , layout data to the monitor 106 connected to the host computer 100 , and causes the monitor 106 to display an image corresponding to the layout data.
- the layout data generation function 301 obtains date/time information regarding the time when the layout data presentation function 307 outputs layout data, and the layout data generation function 301 selects an image and a template to be output according to the date/time information. At this time, the layout data generation function 301 selects a template by combining a plurality of conditions corresponding to the date and time (an event and a person corresponding to the date and time). Thus, the layout data generation function 301 can select, among various images and templates, an appropriate template corresponding to the date and time of outputting the layout data.
- FIG. 5 is a flow chart illustrating the image file grouping processing performed by the image management function 305 illustrated in FIG. 3 . This processing is achieved by the CPU 108 executing a program corresponding to the image management function 305 in FIG. 3 which is stored in the HD 107 or the ROM 110 .
- step S 501 the image management function 305 loads the input image file 304 .
- step S 502 the image management function 305 determines whether a person is included in the image of the loaded image file.
- the image management function 305 analyzes the image data in the image file to detect an area corresponding to a person's face. As a result of the detection, if an area corresponding to a face (i.e., face area) is included, the image management function 305 stores in the RAM 109 the face area in the image on the assumption that a person is included in the image.
- the image management function 305 stores in the RAM 109 each of the plurality of face areas in the image on the assumption that a plurality of people is included in the image. If the image management function 305 determines that no person is included in the image (NO in step S 502 ), the image management function 305 stores the image in the RAM 109 on the assumption that no person is included in the image file.
- step S 502 if the image management function 305 determines that a person is included (YES in step S 502 ), then in step S 503 , the image management function 305 calculates a feature amount of the face of the person.
- the image management function 305 can use a value obtained in the face detection processing in step S 502 as the feature amount of the face.
- step S 504 the image management function 305 compares the feature amount of the face calculated in step S 503 with the feature amounts of the faces of the people in the image files included in existing groups, and determines whether the person included in the image file to be processed is a person in any of the existing groups.
- step S 504 if the image management function 305 determines that the person in the image file to be processed is a person corresponding to any of the existing groups (YES in step S 504 ), then in step S 505 , the image management function 305 adds the image file to the existing image file group.
- step S 506 the image management function 305 creates a new person image file group. Then, in step S 507 , the image management function 305 adds the image file to be processed to the person image file group created in step S 506 .
- step S 508 the image management function 305 determines whether another person other than the person processed in steps 504 to 507 is included in the image file. In step S 508 , if a plurality of faces is detected in step S 502 , the image management function 305 determines that another person is included in the image file. Then, the image management function 305 repeats the processing in steps S 503 to S 507 until the image management function 305 executes the processing in steps 503 to 507 on all of the plurality of face areas stored in the RAM 109 in step S 502 .
- image files are managed with respect to each group in the image database 306 .
- the image management function 305 groups image files with respect to each person.
- the image management function 305 groups image files also with respect to each photographing date.
- the image management function 305 manages image files in the image database 306 as described above, and also manages ancillary information indicating the attributes of each image file in the image database 306 .
- the layout data generation function 301 identifies an image to be arranged on a template with reference to the ancillary information.
- FIG. 4 illustrates the ancillary information registered in the image database 306 .
- An image file path 401 is path information including a storage location and a file name of an image file. An image file is generated in the HD 107 or the RAM 109 , and therefore, the image file path 401 indicates an area in the HD 107 or the RAM 109 .
- Photographing date information 402 indicates a photographing date of the image.
- the photographing date information 402 is obtained based on the photographing date included in the metadata portion 201 in FIG. 2 . If the photographing date information is not included in the Exif data in the image file, the last update date recorded in a time stamp of the image file may be used as the photographing date.
- Favorite setting information 403 indicates an evaluation of the image provided by a user.
- the rating included in the metadata portion 201 in FIG. 2 is used as the favorite setting information 403 .
- the metadata portion 201 stores the rating indicating the evaluation.
- the stored rating may be used as the favorite setting information 403 .
- the evaluation may be used as the favorite setting information 403 .
- Same person profile information 404 is identification (ID) information for identifying a person included in the image.
- ID identification
- an image including a particular person is regarded as a target to be arranged on a template.
- a person included in the image can be identified by identifying profile information associated with the ID information with reference to the profile information 404 . The details of the content of the profile information will be described below.
- Event information 405 is ID information for identifying an event (a birthday, a graduation ceremony, or the like) related to the image.
- an image of a particular event is regarded as a target to be arranged on a template.
- an event corresponding to the image can be identified by identifying event information associated with the ID information with reference to the event information 405 . The details of the content of the event information will be described below.
- the number of times of viewing 406 represents the number of output times the user has viewed the target image.
- the number of times of printing 407 represents the number of output times the user has printed the target image. If one image is viewed with a viewer of the application software 101 , or a print instruction to print one image is issued, the corresponding number of times is counted and stored in a memory area assigned to the application software 101 . With reference to the corresponding number of times stored in the memory area, the image management function 305 can obtain the number of times of viewing 406 or the number of times of printing 407 . In addition, if the metadata portion 201 of an image file stores the number of times of viewing the image file and the number of times of printing the image file, the image management function 305 may refer to this information.
- FIG. 6 illustrates an example of the person profile information identified by the same person profile information 404 in the ancillary information illustrated in FIG. 4 .
- the profile information is set according to an instruction issued by a user.
- the application software 101 causes the monitor 106 to display images in the image database 306 with respect to each person group. Then, the user can perform a setting operation on each person group using any of the operation devices, so that the profile information can be set with respect to the person group.
- a person name 601 represents the name of a person included in the image or a character string for identifying the person.
- a date of birth 602 indicates the date of birth of the person included in the image.
- a relationship 603 represents the relationship between the person included in the image and the user, and represents, for example, “son”, “mother”, “granddaughter”, or “friend”. The relationship 603 is set by the user selecting any one of a plurality of predetermined options for relationships in the application software 101 .
- FIG. 7 is an example of the event information identified by the event information 405 in the ancillary information illustrated in FIG. 4 .
- the event information is also set according to an instruction issued by the user in a similar manner to the profile information.
- An event name 701 represents the name of an event or a character string for the user to identify the event.
- An event category 702 represents the category of the event, for example, “travel”, “graduation ceremony”, or “hobby”.
- An event occurrence date 703 represents date information regarding the period during which the event has occurred. The user can register an event over a plurality of dates, or can register a plurality of events on the same photographing date.
- ID information for identifying the profile information illustrated in FIG. 6 and the event information illustrated in FIG. 7 is set for the person group and the photographing date group of the image, and is further set for the images included in each group.
- the ID information for identifying the profile information set by the user is stored in the ancillary information corresponding to each image included in the groups.
- the profile information can be set not only for the groups, but also for each image individually by the user.
- the layout data generation function 301 generates layout data, and the layout data presentation function 307 presents the layout data to the user. At this time, based on the presentation date and time of the layout data and the layout data generation condition 302 , the layout data generation function 301 determines a template to be used in the layout data and an image to be arranged on the template.
- the layout data generation condition 302 a condition for specifying a person and an event is set.
- the layout data generation function 301 obtains the template 303 corresponding to the person and the event specified by the condition. Further, based on the ancillary information illustrated in FIG. 4 , the layout data generation function 301 obtains an image corresponding to the person and the event specified by the condition, with reference to the image database 306 .
- FIG. 8 illustrates an example of the layout data generation condition 302 .
- the layout data generation condition 302 a plurality of conditions for identifying a template and an image to be used to generate layout data are stored, and an ID is assigned to each condition.
- each condition at least one of items, namely a person, an event, and the number of photographed images, is set.
- Each condition can also include timing information. The above-described items do not need to be set in each processing. Thus, an item which is not set in processing is not used for a condition.
- the layout data generation function 301 obtains from the template 303 a template corresponding to a condition stored in the layout data generation condition 302 .
- Each template includes IDs corresponding to respective conditions as illustrated in FIG. 9 .
- the layout data generation function 301 obtains a template including the ID corresponding to the condition. The details of a file configuration of a template will be described below. Further, based on the ancillary information illustrated in FIG. 4 , the layout data generation function 301 also obtains an image corresponding to the condition from the image database 306 .
- the timing information represents the timing at which layout data is generated. For example, if the layout data generation function 301 generates layout data according to the date and time when the layout data is output and presented to the user, the layout data generation function 301 identifies from the layout data generation condition 302 a condition including the timing information according to the presentation date and time.
- the layout data generation function 301 compares the person, the event, and the number of photographed images in the condition of each ID included in the layout data generation condition 302 , with the ancillary information of the image file, and determines whether there is an image that matches the condition. Further, the layout data generation function 301 compares the event date and time identified by the ancillary information and the timing information with the current date and time, and determines whether the condition corresponds to the current date and time.
- the condition of an ID 001 in FIG. 8 is such that the target person is “father”, the event is “birthday”, and the timing information is “one month before and after birthday, year not considered”.
- the layout data generation function 301 confirms the ancillary information of each image file in the image database 306 , and confirms whether the image database 306 stores an image of which person profile information is “father” and event is “birthday”. If the image database 306 stores such an image, the layout data generation function 301 confirms, based on the date of birth in the profile information, whether the current date and time is within one month before or after the birthday of the “father”.
- the layout data generation function 301 determines an image file included in a group for the relationship “father” and corresponding to the event “birthday”, as a target to be arranged on a template. At this time, the timing information describes “year not considered”, and therefore, the layout data generation function 301 does not consider the year in the comparison of the date of birth with the current date and time. Thus, the condition is matched one month before and after the birthday of the “father” every year, and therefore, the layout data generation function 301 generates this layout data one month before and after the birthday of the father every year.
- the condition of an ID 011 in FIG. 8 is such that the target person is “son”, the event is “graduation ceremony”, and the timing information is “one month after graduation ceremony, one year considered”.
- the layout data generation function 301 determines, using the ancillary information of the image file, whether the relationship “son” is registered as the person profile information. If the relationship “son” is registered, the layout data generation function 301 confirms whether the event “graduation ceremony” is registered as the event information in the ancillary information. If, as a result of thus confirming the ancillary information, the layout data generation function 301 determines that there is an image corresponding to “son” and “graduation ceremony”, the layout data generation function 301 confirms the timing information.
- the timing information is “one month after graduation ceremony”, and therefore, the layout data generation function 301 compares the event occurrence date in the event information with the current date and time, and determines whether the current date and time is within one month after the date of the graduation ceremony. In addition, the timing information describes “one year considered”, and therefore, the layout data generation function 301 determines that the current date and time matches the timing information in the event occurrence year and until the following year. The layout data generation function 301 , however, will determine that the current date and time does not match the timing information in the second and subsequent years. If the layout data generation function 301 determines as a result that the current date and time matches the timing information, the layout data generation function 301 generates layout data.
- the layout data generation condition 302 may be stored in the host computer 100 , or may be stored in an external apparatus capable of communicating with the host computer 100 , as a text file described, for example, in the extensible markup language (XML) format. In this case, the layout data generation condition 302 is appropriately transmitted from the external apparatus to the host computer 100 . For example, when the layout data generation function 301 generates layout data, or when the application software 101 is started, the host computer 100 obtains the layout data generation condition 302 from the external apparatus. If the layout data generation condition 302 is thus stored in the external apparatus, it is easy to replace or edit data.
- XML extensible markup language
- the layout data generation function 301 identifies an image that matches a condition using the ancillary information of each image file and the layout data generation condition 302 . Further, according to the present exemplary embodiment, the layout data generation function 301 evaluates an image and determines a condition corresponding to an image having a high evaluation as a condition for generating layout data.
- FIG. 10 is a flow chart illustrating processing for selecting a condition for generating layout data by the layout data generation function 301 illustrated in FIG. 3 . This process is achieved by the CPU 108 executing a program corresponding to the layout data generation function 301 in FIG. 3 which is stored in the HD 107 or the ROM 110 .
- the layout data generation function 301 obtains the current date and time.
- the layout data generation function 301 may obtain the current date and time determined by a clock function of the application software 101 , or may obtain the current date and time determined by, for example, a clock function of the OS 102 or another application.
- step S 1001 the layout data generation function 301 reads the layout data generation condition 302 . If the layout data generation condition 302 is stored in the HD 107 or the ROM 110 in the host computer 100 , the layout data generation condition 302 is loaded from the memory of the HD 107 or the ROM 110 into the RAM 109 . Alternatively, if the layout data generation condition 302 is stored in an external apparatus, the processing for receiving the layout data generation condition 302 from the external apparatus is performed.
- step S 1002 the layout data generation function 301 compares one of the layout data generation conditions to be processed, with ancillary information in the image database 306 , and searches for one or a plurality of images corresponding to the layout data generation condition. More specifically, the layout data generation function 301 searches for one or a plurality of images corresponding to attributes of an image (a person and an event) in the layout data generation condition and of which date and time (the birthday or the event occurrence date) of the attributes of the image (the person and the event) matches the current date and time obtained in step S 1000 and the timing information.
- step S 1003 the layout data generation function 301 determines whether there is an image file that matches one of the layout data generation conditions to be processed.
- step S 1003 if the layout data generation function 301 determines that there is an image file that matches the layout data generation condition (YES in step S 1003 ), then in step S 1004 , the layout data generation function 301 calculates the evaluation values of the image using the ancillary information of the image file.
- FIG. 11 illustrates examples of evaluation items used in the evaluation value calculation processing in step S 1004 .
- the layout data generation function 301 calculates the rating of the image file, the number of times of printing the image file, the number of times of viewing the image file, and the photographing date and time of the image file.
- the ancillary information includes the favorite setting, the number of times of printing, the number of times of viewing, and the photographing date and time.
- the layout data generation function 301 can obtain the evaluation value of the image file with respect to each evaluation item.
- an image file having a high evaluation in “rating”, and an image file having a large number of times in “the number of times of printing” or “the number of times of viewing” are determined as an image file having a high evaluation value.
- an image file having a new date and time when the image has been photographed is determined as an image file having a high evaluation value. If a plurality of image files corresponding to the layout data generation condition are found in the search in step S 1002 , a combination of images far from each other in “photographing date and time” among the plurality of image files is determined as a combination of image files having a high evaluation value.
- the rating of the image file, the number of times of printing the image file, and the number of times of viewing the image file are evaluated based on the respective average values of the ratings, the numbers of times of printing, and the numbers of times of viewing of the plurality of image files.
- the image file to which a favorite setting is made is evaluated. If a favorite setting is not made for the image file, the evaluation values of the image file are calculated without using its rating in step S 1004 .
- step S 1004 the layout data generation function 301 evaluates the image file with respect to the plurality of evaluation items based on a priority order illustrated in FIG. 11 .
- the priority order is determined such that an index indicating the preference of the user ranks higher.
- the present exemplary embodiment is not limited to this.
- weighted addition is performed on the evaluation result of each of the plurality of evaluation items according to the evaluation order, and obtained result is regarded as an evaluation value for one condition.
- step S 1005 the layout data generation function 301 determines whether the processing in steps 1002 to 1004 are performed on all of the plurality of conditions in the layout data generation condition 302 . If there is a layout data generation condition of the next ID (YES in step S 1005 ), the layout data generation function 301 advances the ID of the condition to be processed to the next ID, and the processing returns to step S 1002 .
- step S 1006 the layout data generation function 301 selects the layout data generation condition having the highest evaluation. Then, in step S 1007 , the layout data generation function 301 selects, from among images stored in the HD 107 as candidates to be arranged on a template an image corresponding to the layout data generation condition selected in step S 1006 as a target to be arranged on a template.
- an image having a high evaluation with respect to the evaluation items illustrated in FIG. 11 is determined to be arranged on a template (i.e., an output target).
- a template i.e., an output target.
- an image preferred by the user can be preferentially output.
- an image having a high evaluation with respect to these items is preferentially determined as the output target.
- the layout data generation function 301 may select the image file as the target to be arranged on a template. Further, if any of the evaluation values of the image file calculated in step S 1004 is higher than a predetermined value, the layout data generation function 301 may select the image file to be arranged on a template by omitting the processing in steps S 1005 and S 1006 .
- the layout data generation function 301 selects an image to be arranged on a template in a case where the image matches a layout data generation condition and has a high evaluation value.
- template selection processing performed by the layout data generation function 301 is described.
- a template is selected to which the image selected by the processing illustrated in FIG. 10 is arranged.
- the IDs of conditions corresponding to the template is described in the file of each template.
- FIG. 9 illustrates an example of a file configuration of the template 303 .
- the template 303 includes a metadata portion 901 and a template portion 902 .
- the template portion 902 includes coordinate information regarding an arrangement area for laying out an image 903 and an image 904 .
- the template portion 902 also includes coordinate information regarding an arrangement area for laying out a text 905 , image data of a design image 906 , and coordinate information regarding the design image 906 .
- the metadata portion 901 includes ID information corresponding to the layout data generation condition 302 .
- the configuration of the metadata portion enables the selection of a template corresponding to the layout data generation condition 302 .
- a plurality of IDs may be described so that the template 303 corresponds to a plurality of conditions.
- the metadata portion 901 of a template for a birthday may include description of condition IDs corresponding to the respective birthdays of “father”, “mother”, and “son” so that the template for a birthday corresponds to the birthdays of a plurality of people. Consequently, the same template can be used for a plurality of people, so that an appropriate template can be selected without storing a template for each of the birthdays of a plurality of people.
- the content of the metadata portion 901 may be stored in the host computer 100 , or may be stored in an external apparatus, as a text file described, for example, in the XML format. In this case, the content of the metadata portion 901 is appropriately transmitted from the external apparatus to the host computer 100 .
- the host computer 100 obtains the text of the metadata portion 901 from the external apparatus. If the metadata portion 901 is thus stored in the external apparatus, it is easy to replace or edit data.
- FIG. 12 is a flow chart illustrating a processing procedure of the template selection processing performed by the layout data generation function 301 illustrated in FIG. 3 . This process is achieved by the CPU 108 executing a program corresponding to the layout data generation function 301 in FIG. 3 which is stored in the HD 107 or the ROM 110 .
- step S 1202 the layout data generation function 301 determines whether an ID described in the metadata portion 901 of the template matches the condition ID obtained in step S 1201 .
- step S 1202 if the layout data generation function 301 determines that the condition ID is described in the template (YES in step S 1202 ), then in step S 1203 , the layout data generation function 301 compares the number of image arrangement areas stored in the template with the total number of the image files selected in step S 1002 in FIG. 10 . If the number of the image arrangement areas is equal to or greater than the number of the selected image files (NO in step S 1203 ), the processing proceeds to step S 1206 , so as not to select the template. Accordingly, it is possible to prevent the generation of a blank image arrangement area when layout data is generated in which an image file is arranged.
- step S 1203 if the layout data generation function 301 determines that the number of the image arrangement areas is smaller than the number of the selected image files (YES in step S 1203 ), then in step S 1204 , the layout data generation function 301 obtains information about a user's residential area and determines whether the template corresponds to the user's residential area. For example, when layout data is printed in which an image is arranged on a template of which size corresponds to an L-size in terms of a sheet size, it may not be possible to appropriately print the layout data in an area where L-size sheets are not used. Thus, in step S 1204 , the layout data generation function 301 does not select the template which does not correspond to the user's residential area.
- the information indicating the user's residential area is extracted by a device management application stored in the host computer 100 . Then, the layout data generation function 301 obtains the information about the user's residential area extracted as described above. In addition, an area corresponding to the template is described in the metadata portion 901 of the template 303 . In step S 1204 , the layout data generation function 301 compares the user's residential area with the area described in the template, and determines whether the template corresponds to the user's residential area.
- step S 1204 if the layout data generation function 301 determines that the template corresponds to the user's residential area (YES in step S 1204 ), then in step S 1205 , the layout data generation function 301 adds the template to a template list as a candidate of an output target. Subsequently, in step S 1206 , if the layout data generation function 301 determines that there is a next template (YES in step S 1206 ), the processing returns to step S 1202 . Through the determination processing in step S 1206 , the layout data generation function 301 performs the processing in steps 1202 to 1205 on all the templates stored in the HD 107 or the ROM 110 . Accordingly, among all the templates, templates that match the conditions in steps 1202 to 1204 are added to the template list.
- step S 1207 if the template list generated in step S 1205 includes a template that is not yet used according to its usage history, the layout data generation function 301 extracts a template that has been used in the past according to its usage history, and performs processing for lowering the priority of the extracted template. More specifically, in step S 1207 , the layout data generation function 301 determines whether the template list generated in step S 1205 includes a template that is not yet used according to its usage history.
- the usage history is, for example, the history of use of the template with respect to the ID of the layout data generation condition obtained in step S 1201 .
- a template that is not used until the output of the layout data is identified in the template list. Then, if the template list includes a template that is not yet used according to its usage history, the priority of a template that has been used according to its usage history is made lower than the priority of the template that is not yet used according to its usage history. Consequently, a template that is not yet used according to its usage history will be selected in step S 1208 .
- layout data pieces having a plurality of patterns can be generated from a plurality of templates, it is possible to preferentially output a template that the user has not viewed among the plurality of templates.
- the layout data generation function 301 selects a template among the used templates without performing the processing for lowering the priority.
- step S 1208 the layout data generation function 301 selects a template having the highest priority. Then, in step S 1209 , if the layout data generation function 301 determines that two or more templates are selected in step S 1208 (YES in step S 1209 ), the processing proceeds to step S 1210 . For example, if the template list includes a plurality of templates that are not yet used according to their usage histories (templates to be used for the first time), the processing proceeds to step S 1210 . In step S 1210 , the layout data generation function 301 randomly selects one template to be used from among the templates selected in step S 1208 .
- the layout data generation function 301 determines the priority order of templates based on whether a template has been used according to its usage history, that is, whether a template has been used to generate layout data.
- the determination of the priority order is not limited to this method.
- the priorities of templates may be weighted based on the number of times of use of the templates. Thus, even if a plurality of templates have been used according to their usage histories in the processing in steps 1208 to 1210 , it is possible to preferentially select a template having a small number of times of use among the plurality of templates.
- the layout data generation function 301 can select an image preferred by the user as a target to be arranged on a template by the processing illustrated in FIG. 10 .
- the layout data generation function 301 can select a template which is not used by the user as an output target.
- the layout data generation function 301 arranges an image preferred by the user to an unused template to generate layout data.
- the layout data presentation function 307 presents the thus generated layout data to the user. Then, if the user issues an instruction to print the presented layout data, the printer 105 prints an image corresponding to the layout data on a printing medium.
- the HD 107 stores the layout data as one file.
- an image that the user desires to output can be output in a variety of layouts.
- an image and a template are selected by a combination of conditions having a plurality of items including a person and an event.
- layout data in which an image related to a particular person and a particular event is arranged on a template appropriate for the person and the event.
- the date/time information corresponding to the person and the event related to an image is compared with the date and time (the current date and time) of outputting the layout data, thus an image and a template corresponding to the current date and time can be selected. Therefore, according to the above-described exemplary embodiment, layout data in which an image that matches the current date and time is arranged on a template suitable for the image can be presented to the user.
- a template is selected based on the ID of the layout data generation condition.
- an example is described as a second exemplary embodiment in which a template is selected based on a keyword of a layout data generation condition.
- the template 303 stores in the metadata portion 901 one or more keywords indicating for what purpose of use the template 303 has been generated. Further, a person and an event corresponding to the layout data generation condition 302 serve as keywords corresponding to the layout data generation condition 302 . Then, the layout data generation function 301 compares the keywords of the template 303 with the keywords in information included in layout data generation conditions to select a template. As a condition for selecting a template, an example for using printer information of a printer used by a user is also described in addition to the conditions in the template selection processing in FIG. 12 .
- FIG. 13 illustrates an example of the configuration of the template 303 .
- the template 303 includes a metadata portion 1301 and a template portion 1302 .
- the metadata portion 1301 stores one or more keywords indicating for what purpose of use the template 303 has been generated.
- the template 303 illustrated in FIG. 13 is a template expected to be used for, for example, a child's entrance ceremony. It is indicated that the template is generated under the theme of flowers and cherry blossoms.
- the template portion 1302 is similar in configuration to the template portion 902 in FIG. 9 .
- FIG. 14 (including FIGS. 14A and 14B ) is a flow chart illustrating a example of the template selection processing performed by the layout data generation function 301 .
- FIG. 14 the processing similar to those described in FIG. 12 are denoted by the same step numbers, and the descriptions thereof are omitted here.
- step S 1401 the layout data generation function 301 sets as condition keywords the keywords described in the layout data generation condition selected in step S 1006 in FIG. 10 .
- the keywords described in the selected layout data generation condition are, for example, the target person “father” and the event “birthday” in the layout data generation condition of the ID 001 in FIG. 8 .
- step S 1402 the layout data generation function 301 compares the keywords described as metadata in the template with the condition keywords obtained in step S 1401 , and determines whether there are keywords that match each other. In step S 1402 , if the layout data generation function 301 determines that there are keywords that match each other between the keywords described in the template and the condition keywords (YES in step S 1402 ), the layout data generation function 301 performs the processing in step S 1203 and the subsequent steps. In steps S 1203 and S 1204 , the processing similar to those in FIG. 12 are performed.
- step S 1405 the layout data generation function 301 obtains printer information indicating a state and a capability of a printer used by the user, and determines whether the template corresponds to the printer information.
- the printer information is extracted from the printer 105 by the device management application stored in the host computer 100 .
- the layout data generation function 301 obtains the printer information extracted as described above.
- the capability and the state of the printer corresponding to the template is described in the metadata portion 901 of the template 303 .
- the layout data generation function 301 compares the printer information with information described in the template, and determines whether the template corresponds to the capability and the state of the printer 105 .
- FIG. 15 illustrates examples of the printer information and template selection criterion based on the printer information.
- the layout data generation function 301 obtains as the printer information a sheet size which can be used for printing in the printer 105 used by the user, and select a template corresponding to the sheet size.
- the layout data generation function 301 may obtain as the printer information a sheet size which is used for printing in the past according to its history in the printer 105 used by the user, and select a template corresponding to the sheet size.
- the layout data generation function 301 may obtain as the printer information amounts of remaining ink of the printer 105 used by the user, and select a template that mainly uses the color of an ink having a sufficient amount of remaining ink.
- steps S 1205 to S 1210 the processing similar to those in FIG. 12 are performed, and therefore, the descriptions thereof are omitted.
- a template is selected using as keywords a person and an event to be output.
- keywords a person and an event to be output.
- the user inputs event information by operating any of the operation devices, and registers the event information in the ancillary information of the image file.
- event information As illustrated in FIG. 7 , it is assumed that the user registers an event having then event name “cherry blossom viewing with family”, the event category “travel”, and the event occurrence date “2012/4/1”. As a result, a layout data generation condition corresponding to the event information is newly added.
- FIG. 16 illustrates the layout data generation condition having the keywords registered by the user.
- a condition 1601 in FIG. 16 is added as the layout data generation condition.
- the timing information is uniformly set as “one month after event occurrence, year not considered”. The timing information, however, may be set according to the event information input by the user. For example, if the event category “travel” is selected, the timing information “two months after event occurrence, year not considered” may be set. Alternatively, if the event category “birthday” is selected, the timing information “one month before and after birthday, year not considered” may be set.
- the template is selected under the condition 1601 .
- the user can register, in an image, keywords (a person and an event) for a template, and add the keywords as a layout data generation condition. Therefore, when layout data is generated using an image file related to an event registered by the user, it is possible to generate the layout data using a more appropriate template.
- an image to be output and a template on which the image is arranged are selected based on a combination of a plurality of types of attributes of an image, such as a person included in the image and an event related to the image.
- a template on which the image is arranged is selected based on a combination of a plurality of types of attributes of an image, such as a person included in the image and an event related to the image.
- the date/time information corresponding to the attributes of an image is compared with the date and time (the current date and time) of outputting the layout data, so that the attributes of an image corresponding to the current date and time can be identified. Then, an image and a template are selected according to the attributes of the image, and therefore, it is possible to present, to the user, layout data in which the image that matches the current date and time is arranged on a template that matches the current date and time.
- a template when a template is selected, a template is selected that corresponds to a combination of a plurality of types of attributes of an image, such as a person and an event.
- the exemplary embodiments are not limited to this configuration.
- a template may be selected according to one type of an attribute, such as a person or an event. For example, if the attributes of an image include “birthday”, a template corresponding to a birthday may be selected.
- the application software 101 described above for generating layout data may generate and output layout data at various timings.
- the application software 101 may generate layout data when the host computer 100 is activated.
- the application software 101 may generate layout data according to an instruction issued by the user.
- the layout data presentation function 307 may perform a method for causing the monitor 106 in FIG. 1 to display layout data in the form of a slideshow, or a method for causing the printer 105 to perform print output of layout data.
- a method for outputting layout data is not limited to the presentation to a user.
- layout data may be stored as image data in the HD 107 of the host computer 100 , or may be transmitted to an external apparatus.
- a photographic image photographed by a camera is described as an example of an object to be arranged on a template.
- the exemplary embodiments are not limited to this example.
- an object may be vector data of a figure or text data.
- the date/time information of the date and time when a file of a vector image or text data has been generated is obtained from the file as the photographing date and time described above.
- a person included in an image and an event related to the image is described as examples of information pieces about the image.
- the exemplary embodiments are not limited to this example.
- the outlines and the generation dates and times of the figure and the text may be registered.
- a figure and text corresponding to the combination are selected, and also a template corresponding to the combination is selected.
- an image and a template are selected based on information indicating both a date and a time, such as the current date and time and the photographing date and time of an image.
- the exemplary embodiments are not limited to this example.
- an image and a template may be selected according to information regarding a date such as the current date or the photographing date of an image without considering a time, or may be selected according only to a time.
- Embodiments of the present invention can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions recorded on a storage medium (e.g., non-transitory computer-readable storage medium) to perform the functions of one or more of the above-described embodiments of the present invention, and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiments.
- the computer may comprise one or more of a central processing unit (CPU), micro processing unit (MPU), or other circuitry, and may include a network of separate computers or separate computer processors.
- the computer executable instructions may be provided to the computer, for example, from a network or the storage medium.
- the storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD) (trade mark)), a flash memory device, a memory card, and the like.
- a program code for implementing the functions according to the present exemplary embodiments may be executed by one computer (a CPU or a micro processing unit (MPU)), or may be executed with the cooperation of a plurality of computers. Further, the program code may be executed by a computer, or hardware may be provided such as a circuit for implementing the functions of the program code. Alternatively, a part of the program code may be implemented by hardware, and a program corresponding to the remaining part may be executed by a computer.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Processing Or Creating Images (AREA)
- Editing Of Facsimile Originals (AREA)
- Studio Devices (AREA)
Abstract
Description
- 1. Field of the Invention
- The present invention relates to an apparatus and a method for outputting layout data in which an object is arranged on a template, and a storage medium.
- 2. Description of the Related Art
- There are techniques for arranging an image owned by a user, such as a photograph photographed by a digital camera, to a template.
- Japanese Patent Application Laid-Open No. 2007-310553 describes a technique for displaying a layout image corresponding to a start time and date when a layout image generation program has started. More specifically, Japanese Patent Application Laid-Open No. 2007-310553 describes the technique for determining date/time information or event information corresponding to the start time and date, and generating a layout image using an image and a template including the date/time information or the event information.
- The technique described in Japanese Patent Application Laid-Open No. 2007-310553, however, uses either one of the date/time information and the event information corresponding to the date and time when the layout image generation program has started, to select an image and a template including the information. Thus, it may not be possible to select an appropriate image or an appropriate template in some cases.
- If an image and a template are selected based only on the date/time information, the image and the template are selected regardless of in what kind of event the image has been photographed at the date and time indicated by the date/time information. Thus, for example, if there are a plurality of events on the same date, images of the plurality of events may be selected in a mixed manner.
- In addition, if an image and a template are selected based only on the event information, the image and the template may be selected that are inappropriate for the date and time of outputting the layout image. For example, the case is considered of an event of which date varies by individual, such as a birthday. An image and a template related to a birthday are selected even if it is the birthday of a particular person. Thus, an image and a template related to a person other than a desired person may be selected.
- The present invention relates to an image processing apparatus and an image processing method that are capable of outputting layout data in which an object appropriate for an output timing of the layout data is arranged on an appropriate template, and a storage medium.
- According to an aspect of the present invention, an apparatus includes an acquiring unit configured to acquire timing information indicating timing at with which an object to be arranged to a template is output and corresponds to a combination of a plurality of types of attributes of the object, a first selecting unit configured to select an object corresponding to the combination, based on output timing at with which layout data is output and the timing indicated by the timing information acquired by the acquiring unit, a second selecting unit configured to select a template corresponding to at least one type of an attribute among the plurality of types, and an outputting unit configured to generate layout data with which the object selected by the first selecting unit is arranged to the template selected by the second selecting unit, and to output the generated layout data.
- Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings.
-
FIG. 1 is a block diagram illustrating an exemplary configuration of a host computer. -
FIG. 2 illustrates a structure of an image file. -
FIG. 3 illustrates a layout data generation program. -
FIG. 4 depicts example information to be registered in an image database. -
FIG. 5 is a flow chart illustrating image grouping processing. -
FIG. 6 illustrates settings of a person profile with respect to an image group. -
FIG. 7 illustrates settings of event information with respect to date/time information. -
FIG. 8 illustrates an example of a layout data generation condition. -
FIG. 9 illustrates a data structure of a template. -
FIG. 10 is a flow chart illustrating an example of image selection processing. -
FIG. 11 illustrates examples of evaluation items to be used to select a layout data generation condition. -
FIG. 12 is a flow chart illustrating an example of template selection processing. -
FIG. 13 illustrates an example of a configuration of a template. -
FIGS. 14A and 14B together comprise a flow chart illustrating an example of template selection processing. -
FIG. 15 illustrates examples of printer information and template selection criterion based on the printer information. -
FIG. 16 illustrates a layout data generation condition in which keywords are registered by a user. - Various exemplary embodiments, features, and aspects of the invention will be described in detail below with reference to the drawings. The exemplary embodiments which will be described below do not restrict to the invention according to the claims. All of combinations of the features described in the exemplary embodiments are not always essential to the means for solution according to the invention.
-
FIG. 1 is a block diagram illustrating a configuration of ahost computer 100 which is an example of an apparatus according to the present invention. - As illustrated in
FIG. 1 , thehost computer 100 is connected to aprinter 105 and amonitor 106. Thehost computer 100 includesapplication software 101 for generating layout data according to the present exemplary embodiment. Theapplication software 101 issues a group of various rendering process commands (an image rendering command, a text rendering command, and a graphics rendering command) indicating an output image, and inputs the group of various rendering process commands to amonitor driver 104 via an operating system (OS) 102. Themonitor driver 104 then causes themonitor 106 to display an image corresponding to the various rendering process commands issued by theapplication software 101. In a case of printing the image, theapplication software 101 inputs the group of rendering commands to aprinter driver 103 via the OS 102. Theprinter driver 103 is software for processing the group of rendering commands to generate print data, and causing theprinter 105 to print an image corresponding to the print data. - To store and operate the above-described software, the
host computer 100 includes hardware such as a central processing unit (CPU) 108, a hard disk (HD) 107, a random access memory (RAM) 109, a read-only memory (ROM) 110, and so on. Thehost computer 100 is also connected to operation devices (a mouse, a keyboard, a touch panel, and the like) (not illustrated). - The
HD 107 and theROM 110 store various types of data and programs. When a program corresponding to theapplication software 101 is stored in theHD 107 or theROM 110, theapplication software 101 is installed into thehost computer 100. TheHD 107 and theROM 110 also store a program corresponding to theOS 102 and programs corresponding to theprinter driver 103 and themonitor driver 104. - In response to an instruction issued by a user and input to the
host computer 100 via any of the operation devices, theCPU 108 loads the above-described programs stored in theHD 107 and theROM 110 into theRAM 109 to execute the programs. Accordingly, functions of theapplication software 101, the OS 102, theprinter driver 103, and themonitor driver 104 can be achieved. An instruction issued by a user may be input to thehost computer 100 not only via the operation devices but also via a touch panel. - In addition, in the
host computer 100, theapplication software 101 generates various types of data to be output. Examples of the types of data to be output include text data categorized into text such as characters, graphics data categorized into graphics such as figures, and image data categorized into photographic images. As output processing of the various types of data, it is possible, for example, to display output image data on themonitor 106, output the output image data to theprinter 105, and transmit the output image data to an external apparatus. When theprinter 105 is caused to print an image based on the output image data, theapplication software 101 makes a print output request to theOS 102. At this time, theapplication software 101 issues to the OS 102 a group of rendering commands in which a text data portion is formed by a text rendering command, a graphics data portion is formed by a graphics rendering command, and an image data portion is formed by an image rendering command. - According to the present exemplary embodiment, the
host computer 100 illustrated inFIG. 1 arranges an object such as an image on a template according to the program corresponding to theapplication software 101, so that a layout image is generated. -
FIG. 2 illustrates a structure of an image file of an image to be arranged on a template. According to the present exemplary embodiment, an image file of an image to be arranged is an image file of an image photographed by a digital camera. If the image file of the image photographed by the digital camera is based on, for example, the exchangeable image file format (Exif) standard, the image file includes animage data portion 202 together with ametadata portion 201 which is information regarding the image. In themetadata portion 201, information pieces such as an image size (the number of pixels), a photographing date and time, photographing camera information, a photographing location, and a rating are recorded. The rating is a result of an evaluation of theimage data portion 202. The evaluation result is recorded according to the states of exposure and focus during the photographing of the image by the digital camera or in image editing application software. Further, a user can manually set the evaluation result. According to the present exemplary embodiment, it is also possible to deal with an image file not including themetadata portion 201 illustrated inFIG. 2 . For example, it is possible to use time stamp information included in the image file, instead of the photographing date and time included in themetadata portion 201. -
FIG. 3 illustrates the functions of theapplication software 101. - An
image management function 305 has a function of loading an input image file 304 (the image file illustrated inFIG. 2 ) into thehost computer 100. Theinput image file 304 is stored in an internal memory (e.g., the HD 107) of thehost computer 100 inFIG. 1 , or stored in a memory of a device connected to thehost computer 100. Theimage management function 305 loads theinput image file 304 therein from either of these memories. - The
image management function 305 has a function of managing theinput image file 304 including themetadata portion 201 and theimage data portion 202 together with information in animage database 306 illustrated inFIG. 4 . Theimage database 306 is created in theHD 107 or theRAM 109. - The
image management function 305 also has a function of extracting a person included in the image of theinput image file 304. Thus, theimage management function 305 can create a group with respect to each person included in an image, and categorize a plurality of images into the created groups in theimage database 306. When performing the grouping processing, theimage management function 305 analyzes theimage data portion 202 of theinput image file 304, and if a person is included in the image, performs face detection. Then, theimage management function 305 categorizes the image by the feature amount of the face calculated based on the detection. Thus, theimage management function 305 can group a plurality of images with respect to each person. - The
image management function 305 also has a function of grouping image files with respect to each photographing date in theimage database 306 based on the photographing date information included in themetadata portion 201 of theinput image file 304. The details of the image file grouping processing performed by theimage management function 305 will be described with reference toFIG. 5 . - A layout
data generation function 301 arranges an image stored in theimage database 306 on atemplate 303 to generate layout data. The layoutdata generation function 301 selects a template to be output and an image to be output according to a layoutdata generation condition 302. - The
template 303 is an image in which an image of an image file is arranged. TheHD 107 or theROM 110 stores a plurality of templates among which a template to be output is selected. The layoutdata generation condition 302 is a condition for an image to be arranged or a template on which an image is arranged when the layoutdata generation function 301 generates layout data. The layoutdata generation function 301 selects an image from theimage database 306 or a template from among the plurality of templates according to the layoutdata generation condition 302. The details of the processing of selecting an image and a template to be output will be described below with reference toFIGS. 10 and 12 . - A layout
data presentation function 307 has a function of outputting layout data generated by the layoutdata generation function 301 and presenting the layout data in such a form as to be recognized by a user. For example, the layoutdata presentation function 307 outputs, via theOS 102 and theprinter driver 103, layout data to theprinter 105 connected to thehost computer 100, and causes theprinter 105 to print an image corresponding to the layout data. Alternatively, the layoutdata presentation function 307 outputs, via theOS 102 and themonitor driver 104, layout data to themonitor 106 connected to thehost computer 100, and causes themonitor 106 to display an image corresponding to the layout data. - According to the present exemplary embodiment, the layout
data generation function 301 obtains date/time information regarding the time when the layoutdata presentation function 307 outputs layout data, and the layoutdata generation function 301 selects an image and a template to be output according to the date/time information. At this time, the layoutdata generation function 301 selects a template by combining a plurality of conditions corresponding to the date and time (an event and a person corresponding to the date and time). Thus, the layoutdata generation function 301 can select, among various images and templates, an appropriate template corresponding to the date and time of outputting the layout data. - Next, the functions illustrated in
FIG. 3 are described in detail. -
FIG. 5 is a flow chart illustrating the image file grouping processing performed by theimage management function 305 illustrated inFIG. 3 . This processing is achieved by theCPU 108 executing a program corresponding to theimage management function 305 inFIG. 3 which is stored in theHD 107 or theROM 110. - In step S501, the
image management function 305 loads theinput image file 304. - Then, in step S502, the
image management function 305 determines whether a person is included in the image of the loaded image file. In the determination of whether a person is included in step S502, theimage management function 305 analyzes the image data in the image file to detect an area corresponding to a person's face. As a result of the detection, if an area corresponding to a face (i.e., face area) is included, theimage management function 305 stores in theRAM 109 the face area in the image on the assumption that a person is included in the image. If a plurality of face areas is detected at this time, theimage management function 305 stores in theRAM 109 each of the plurality of face areas in the image on the assumption that a plurality of people is included in the image. If theimage management function 305 determines that no person is included in the image (NO in step S502), theimage management function 305 stores the image in theRAM 109 on the assumption that no person is included in the image file. - In step S502, if the
image management function 305 determines that a person is included (YES in step S502), then in step S503, theimage management function 305 calculates a feature amount of the face of the person. Theimage management function 305 can use a value obtained in the face detection processing in step S502 as the feature amount of the face. Then, in step S504, theimage management function 305 compares the feature amount of the face calculated in step S503 with the feature amounts of the faces of the people in the image files included in existing groups, and determines whether the person included in the image file to be processed is a person in any of the existing groups. - In step S504, if the
image management function 305 determines that the person in the image file to be processed is a person corresponding to any of the existing groups (YES in step S504), then in step S505, theimage management function 305 adds the image file to the existing image file group. - Whereas if the
image management function 305 determines that the person in the image file to be processed is not a person corresponding to any of the existing groups (NO in step S504), then in step S506, theimage management function 305 creates a new person image file group. Then, in step S507, theimage management function 305 adds the image file to be processed to the person image file group created in step S506. - After adding the image file to the group in step S505 or S507, then in step S508, the
image management function 305 determines whether another person other than the person processed insteps 504 to 507 is included in the image file. In step S508, if a plurality of faces is detected in step S502, theimage management function 305 determines that another person is included in the image file. Then, theimage management function 305 repeats the processing in steps S503 to S507 until theimage management function 305 executes the processing insteps 503 to 507 on all of the plurality of face areas stored in theRAM 109 in step S502. - According to the above-described processing illustrated in
FIG. 5 , image files are managed with respect to each group in theimage database 306. In the example illustrated inFIG. 5 , theimage management function 305 groups image files with respect to each person. Theimage management function 305, however, groups image files also with respect to each photographing date. - The
image management function 305 manages image files in theimage database 306 as described above, and also manages ancillary information indicating the attributes of each image file in theimage database 306. When generating layout data, the layoutdata generation function 301 identifies an image to be arranged on a template with reference to the ancillary information. -
FIG. 4 illustrates the ancillary information registered in theimage database 306. - An
image file path 401 is path information including a storage location and a file name of an image file. An image file is generated in theHD 107 or theRAM 109, and therefore, theimage file path 401 indicates an area in theHD 107 or theRAM 109. - Photographing
date information 402 indicates a photographing date of the image. The photographingdate information 402 is obtained based on the photographing date included in themetadata portion 201 inFIG. 2 . If the photographing date information is not included in the Exif data in the image file, the last update date recorded in a time stamp of the image file may be used as the photographing date. -
Favorite setting information 403 indicates an evaluation of the image provided by a user. For example, the rating included in themetadata portion 201 inFIG. 2 is used as thefavorite setting information 403. If a user evaluates the image in an application of a digital camera or a personal computer, themetadata portion 201 stores the rating indicating the evaluation. Thus, the stored rating may be used as thefavorite setting information 403. Alternatively, if the user evaluates the image using theapplication software 101, the evaluation may be used as thefavorite setting information 403. - Same
person profile information 404 is identification (ID) information for identifying a person included in the image. According to the present exemplary embodiment, an image including a particular person is regarded as a target to be arranged on a template. At this time, a person included in the image can be identified by identifying profile information associated with the ID information with reference to theprofile information 404. The details of the content of the profile information will be described below. -
Event information 405 is ID information for identifying an event (a birthday, a graduation ceremony, or the like) related to the image. According to the present exemplary embodiment, an image of a particular event is regarded as a target to be arranged on a template. At this time, an event corresponding to the image can be identified by identifying event information associated with the ID information with reference to theevent information 405. The details of the content of the event information will be described below. - The number of times of viewing 406 represents the number of output times the user has viewed the target image. The number of times of
printing 407 represents the number of output times the user has printed the target image. If one image is viewed with a viewer of theapplication software 101, or a print instruction to print one image is issued, the corresponding number of times is counted and stored in a memory area assigned to theapplication software 101. With reference to the corresponding number of times stored in the memory area, theimage management function 305 can obtain the number of times of viewing 406 or the number of times ofprinting 407. In addition, if themetadata portion 201 of an image file stores the number of times of viewing the image file and the number of times of printing the image file, theimage management function 305 may refer to this information. -
FIG. 6 illustrates an example of the person profile information identified by the sameperson profile information 404 in the ancillary information illustrated inFIG. 4 . The profile information is set according to an instruction issued by a user. To set the profile information, for example, theapplication software 101 causes themonitor 106 to display images in theimage database 306 with respect to each person group. Then, the user can perform a setting operation on each person group using any of the operation devices, so that the profile information can be set with respect to the person group. - A
person name 601 represents the name of a person included in the image or a character string for identifying the person. A date ofbirth 602 indicates the date of birth of the person included in the image. Arelationship 603 represents the relationship between the person included in the image and the user, and represents, for example, “son”, “mother”, “granddaughter”, or “friend”. Therelationship 603 is set by the user selecting any one of a plurality of predetermined options for relationships in theapplication software 101. -
FIG. 7 is an example of the event information identified by theevent information 405 in the ancillary information illustrated inFIG. 4 . The event information is also set according to an instruction issued by the user in a similar manner to the profile information. Anevent name 701 represents the name of an event or a character string for the user to identify the event. Anevent category 702 represents the category of the event, for example, “travel”, “graduation ceremony”, or “hobby”. Anevent occurrence date 703 represents date information regarding the period during which the event has occurred. The user can register an event over a plurality of dates, or can register a plurality of events on the same photographing date. - ID information for identifying the profile information illustrated in
FIG. 6 and the event information illustrated inFIG. 7 is set for the person group and the photographing date group of the image, and is further set for the images included in each group. As a result, the ID information for identifying the profile information set by the user is stored in the ancillary information corresponding to each image included in the groups. The profile information can be set not only for the groups, but also for each image individually by the user. - According to the present exemplary embodiment, the layout
data generation function 301 generates layout data, and the layoutdata presentation function 307 presents the layout data to the user. At this time, based on the presentation date and time of the layout data and the layoutdata generation condition 302, the layoutdata generation function 301 determines a template to be used in the layout data and an image to be arranged on the template. - More specifically, in the layout
data generation condition 302, a condition for specifying a person and an event is set. The layoutdata generation function 301 obtains thetemplate 303 corresponding to the person and the event specified by the condition. Further, based on the ancillary information illustrated inFIG. 4 , the layoutdata generation function 301 obtains an image corresponding to the person and the event specified by the condition, with reference to theimage database 306. -
FIG. 8 illustrates an example of the layoutdata generation condition 302. - In the layout
data generation condition 302, a plurality of conditions for identifying a template and an image to be used to generate layout data are stored, and an ID is assigned to each condition. In each condition, at least one of items, namely a person, an event, and the number of photographed images, is set. Each condition can also include timing information. The above-described items do not need to be set in each processing. Thus, an item which is not set in processing is not used for a condition. - With reference to the ancillary information of an image file, the layout
data generation function 301 obtains from the template 303 a template corresponding to a condition stored in the layoutdata generation condition 302. Each template includes IDs corresponding to respective conditions as illustrated inFIG. 9 . Thus, the layoutdata generation function 301 obtains a template including the ID corresponding to the condition. The details of a file configuration of a template will be described below. Further, based on the ancillary information illustrated inFIG. 4 , the layoutdata generation function 301 also obtains an image corresponding to the condition from theimage database 306. - The timing information represents the timing at which layout data is generated. For example, if the layout
data generation function 301 generates layout data according to the date and time when the layout data is output and presented to the user, the layoutdata generation function 301 identifies from the layout data generation condition 302 a condition including the timing information according to the presentation date and time. - The layout
data generation function 301 compares the person, the event, and the number of photographed images in the condition of each ID included in the layoutdata generation condition 302, with the ancillary information of the image file, and determines whether there is an image that matches the condition. Further, the layoutdata generation function 301 compares the event date and time identified by the ancillary information and the timing information with the current date and time, and determines whether the condition corresponds to the current date and time. - For example, the condition of an
ID 001 inFIG. 8 is such that the target person is “father”, the event is “birthday”, and the timing information is “one month before and after birthday, year not considered”. In response, the layoutdata generation function 301 confirms the ancillary information of each image file in theimage database 306, and confirms whether theimage database 306 stores an image of which person profile information is “father” and event is “birthday”. If theimage database 306 stores such an image, the layoutdata generation function 301 confirms, based on the date of birth in the profile information, whether the current date and time is within one month before or after the birthday of the “father”. If the current date and time is within one month before or after the birthday of the “father”, the layoutdata generation function 301 determines an image file included in a group for the relationship “father” and corresponding to the event “birthday”, as a target to be arranged on a template. At this time, the timing information describes “year not considered”, and therefore, the layoutdata generation function 301 does not consider the year in the comparison of the date of birth with the current date and time. Thus, the condition is matched one month before and after the birthday of the “father” every year, and therefore, the layoutdata generation function 301 generates this layout data one month before and after the birthday of the father every year. - The condition of an
ID 011 inFIG. 8 is such that the target person is “son”, the event is “graduation ceremony”, and the timing information is “one month after graduation ceremony, one year considered”. Thus, the layoutdata generation function 301 determines, using the ancillary information of the image file, whether the relationship “son” is registered as the person profile information. If the relationship “son” is registered, the layoutdata generation function 301 confirms whether the event “graduation ceremony” is registered as the event information in the ancillary information. If, as a result of thus confirming the ancillary information, the layoutdata generation function 301 determines that there is an image corresponding to “son” and “graduation ceremony”, the layoutdata generation function 301 confirms the timing information. The timing information is “one month after graduation ceremony”, and therefore, the layoutdata generation function 301 compares the event occurrence date in the event information with the current date and time, and determines whether the current date and time is within one month after the date of the graduation ceremony. In addition, the timing information describes “one year considered”, and therefore, the layoutdata generation function 301 determines that the current date and time matches the timing information in the event occurrence year and until the following year. The layoutdata generation function 301, however, will determine that the current date and time does not match the timing information in the second and subsequent years. If the layoutdata generation function 301 determines as a result that the current date and time matches the timing information, the layoutdata generation function 301 generates layout data. - In addition, as in the condition of an
ID 999 inFIG. 8 , it is possible to describe only the number of photographed images, such as “50 or more images on same photographing date”. With this condition, if the number of images of the same photographing date exceeds a predetermined number regardless of registration information regarding people and events, generation of layout data can be performed using images of the same photographing date. - The layout
data generation condition 302 may be stored in thehost computer 100, or may be stored in an external apparatus capable of communicating with thehost computer 100, as a text file described, for example, in the extensible markup language (XML) format. In this case, the layoutdata generation condition 302 is appropriately transmitted from the external apparatus to thehost computer 100. For example, when the layoutdata generation function 301 generates layout data, or when theapplication software 101 is started, thehost computer 100 obtains the layoutdata generation condition 302 from the external apparatus. If the layoutdata generation condition 302 is thus stored in the external apparatus, it is easy to replace or edit data. - As described with reference to
FIGS. 3 to 8 , the layoutdata generation function 301 identifies an image that matches a condition using the ancillary information of each image file and the layoutdata generation condition 302. Further, according to the present exemplary embodiment, the layoutdata generation function 301 evaluates an image and determines a condition corresponding to an image having a high evaluation as a condition for generating layout data. -
FIG. 10 is a flow chart illustrating processing for selecting a condition for generating layout data by the layoutdata generation function 301 illustrated inFIG. 3 . This process is achieved by theCPU 108 executing a program corresponding to the layoutdata generation function 301 inFIG. 3 which is stored in theHD 107 or theROM 110. - In step S1000, the layout
data generation function 301 obtains the current date and time. The layoutdata generation function 301 may obtain the current date and time determined by a clock function of theapplication software 101, or may obtain the current date and time determined by, for example, a clock function of theOS 102 or another application. - In step S1001, the layout
data generation function 301 reads the layoutdata generation condition 302. If the layoutdata generation condition 302 is stored in theHD 107 or theROM 110 in thehost computer 100, the layoutdata generation condition 302 is loaded from the memory of theHD 107 or theROM 110 into theRAM 109. Alternatively, if the layoutdata generation condition 302 is stored in an external apparatus, the processing for receiving the layoutdata generation condition 302 from the external apparatus is performed. - The processing in steps 1002 to 1005 is executed with respect to each of a plurality of conditions in the layout
data generation condition 302. In step S1002, the layoutdata generation function 301 compares one of the layout data generation conditions to be processed, with ancillary information in theimage database 306, and searches for one or a plurality of images corresponding to the layout data generation condition. More specifically, the layoutdata generation function 301 searches for one or a plurality of images corresponding to attributes of an image (a person and an event) in the layout data generation condition and of which date and time (the birthday or the event occurrence date) of the attributes of the image (the person and the event) matches the current date and time obtained in step S1000 and the timing information. - In step S1003, the layout
data generation function 301 determines whether there is an image file that matches one of the layout data generation conditions to be processed. - In step S1003, if the layout
data generation function 301 determines that there is an image file that matches the layout data generation condition (YES in step S1003), then in step S1004, the layoutdata generation function 301 calculates the evaluation values of the image using the ancillary information of the image file. -
FIG. 11 illustrates examples of evaluation items used in the evaluation value calculation processing in step S1004. According to the present exemplary embodiment, as the evaluation values of the image file corresponding to the layout data generation condition to be processed, the layoutdata generation function 301 calculates the rating of the image file, the number of times of printing the image file, the number of times of viewing the image file, and the photographing date and time of the image file. As illustrated inFIG. 4 , the ancillary information includes the favorite setting, the number of times of printing, the number of times of viewing, and the photographing date and time. Thus, with reference to the ancillary information corresponding to the image file, the layoutdata generation function 301 can obtain the evaluation value of the image file with respect to each evaluation item. - When evaluation values of an image file are thus set, an image file having a high evaluation in “rating”, and an image file having a large number of times in “the number of times of printing” or “the number of times of viewing” are determined as an image file having a high evaluation value. Further, in “photographing date and time”, an image file having a new date and time when the image has been photographed is determined as an image file having a high evaluation value. If a plurality of image files corresponding to the layout data generation condition are found in the search in step S1002, a combination of images far from each other in “photographing date and time” among the plurality of image files is determined as a combination of image files having a high evaluation value.
- The rating of the image file, the number of times of printing the image file, and the number of times of viewing the image file are evaluated based on the respective average values of the ratings, the numbers of times of printing, and the numbers of times of viewing of the plurality of image files. Regarding to the evaluation based on the rating, the image file to which a favorite setting is made is evaluated. If a favorite setting is not made for the image file, the evaluation values of the image file are calculated without using its rating in step S1004.
- In addition, in step S1004, the layout
data generation function 301 evaluates the image file with respect to the plurality of evaluation items based on a priority order illustrated inFIG. 11 . The priority order is determined such that an index indicating the preference of the user ranks higher. The present exemplary embodiment, however, is not limited to this. As an evaluation method corresponding to the priority order, for example, weighted addition is performed on the evaluation result of each of the plurality of evaluation items according to the evaluation order, and obtained result is regarded as an evaluation value for one condition. - As described above, if the evaluation values of the image are calculated in step S1004, the processing proceeds to step S1005. In step S1005, the layout
data generation function 301 determines whether the processing in steps 1002 to 1004 are performed on all of the plurality of conditions in the layoutdata generation condition 302. If there is a layout data generation condition of the next ID (YES in step S1005), the layoutdata generation function 301 advances the ID of the condition to be processed to the next ID, and the processing returns to step S1002. - After the evaluation values are calculated with respect to all the layout data generation conditions by the processing in steps 1002 to 1004 (NO in step S1005), the processing proceeds to step S1006. In step S1006, the layout
data generation function 301 selects the layout data generation condition having the highest evaluation. Then, in step S1007, the layoutdata generation function 301 selects, from among images stored in theHD 107 as candidates to be arranged on a template an image corresponding to the layout data generation condition selected in step S1006 as a target to be arranged on a template. - According to the present exemplary embodiment, an image having a high evaluation with respect to the evaluation items illustrated in
FIG. 11 is determined to be arranged on a template (i.e., an output target). Thus, an image preferred by the user can be preferentially output. In other words, it is highly likely that the user prefers an image for which a rating has been set, or an image having a large number of times of printing or viewing. Thus, an image having a high evaluation with respect to these items is preferentially determined as the output target. - At the time when the layout
data generation function 301 determines in step S1003 that there is an image file that matches the layout data generation condition, the layoutdata generation function 301 may select the image file as the target to be arranged on a template. Further, if any of the evaluation values of the image file calculated in step S1004 is higher than a predetermined value, the layoutdata generation function 301 may select the image file to be arranged on a template by omitting the processing in steps S1005 and S1006. - As illustrated in
FIG. 10 , the layoutdata generation function 301 selects an image to be arranged on a template in a case where the image matches a layout data generation condition and has a high evaluation value. - Next, template selection processing performed by the layout
data generation function 301 is described. By this processing, a template is selected to which the image selected by the processing illustrated inFIG. 10 is arranged. - According to the present exemplary embodiment, to select a template corresponding to a layout data generation condition, the IDs of conditions corresponding to the template is described in the file of each template.
-
FIG. 9 illustrates an example of a file configuration of thetemplate 303. Thetemplate 303 includes ametadata portion 901 and atemplate portion 902. Thetemplate portion 902 includes coordinate information regarding an arrangement area for laying out animage 903 and animage 904. Thetemplate portion 902 also includes coordinate information regarding an arrangement area for laying out atext 905, image data of adesign image 906, and coordinate information regarding thedesign image 906. - The
metadata portion 901 includes ID information corresponding to the layoutdata generation condition 302. The configuration of the metadata portion enables the selection of a template corresponding to the layoutdata generation condition 302. As illustrated inFIG. 9 , a plurality of IDs may be described so that thetemplate 303 corresponds to a plurality of conditions. For example, themetadata portion 901 of a template for a birthday may include description of condition IDs corresponding to the respective birthdays of “father”, “mother”, and “son” so that the template for a birthday corresponds to the birthdays of a plurality of people. Consequently, the same template can be used for a plurality of people, so that an appropriate template can be selected without storing a template for each of the birthdays of a plurality of people. - The content of the
metadata portion 901 may be stored in thehost computer 100, or may be stored in an external apparatus, as a text file described, for example, in the XML format. In this case, the content of themetadata portion 901 is appropriately transmitted from the external apparatus to thehost computer 100. For example, when the layoutdata generation function 301 generates layout data, or when theapplication software 101 is started, thehost computer 100 obtains the text of themetadata portion 901 from the external apparatus. If themetadata portion 901 is thus stored in the external apparatus, it is easy to replace or edit data. -
FIG. 12 is a flow chart illustrating a processing procedure of the template selection processing performed by the layoutdata generation function 301 illustrated in FIG. 3. This process is achieved by theCPU 108 executing a program corresponding to the layoutdata generation function 301 inFIG. 3 which is stored in theHD 107 or theROM 110. - In step S1202, the layout
data generation function 301 determines whether an ID described in themetadata portion 901 of the template matches the condition ID obtained in step S1201. - In step S1202, if the layout
data generation function 301 determines that the condition ID is described in the template (YES in step S1202), then in step S1203, the layoutdata generation function 301 compares the number of image arrangement areas stored in the template with the total number of the image files selected in step S1002 inFIG. 10 . If the number of the image arrangement areas is equal to or greater than the number of the selected image files (NO in step S1203), the processing proceeds to step S1206, so as not to select the template. Accordingly, it is possible to prevent the generation of a blank image arrangement area when layout data is generated in which an image file is arranged. - In step S1203, if the layout
data generation function 301 determines that the number of the image arrangement areas is smaller than the number of the selected image files (YES in step S1203), then in step S1204, the layoutdata generation function 301 obtains information about a user's residential area and determines whether the template corresponds to the user's residential area. For example, when layout data is printed in which an image is arranged on a template of which size corresponds to an L-size in terms of a sheet size, it may not be possible to appropriately print the layout data in an area where L-size sheets are not used. Thus, in step S1204, the layoutdata generation function 301 does not select the template which does not correspond to the user's residential area. - The information indicating the user's residential area is extracted by a device management application stored in the
host computer 100. Then, the layoutdata generation function 301 obtains the information about the user's residential area extracted as described above. In addition, an area corresponding to the template is described in themetadata portion 901 of thetemplate 303. In step S1204, the layoutdata generation function 301 compares the user's residential area with the area described in the template, and determines whether the template corresponds to the user's residential area. - In step S1204, if the layout
data generation function 301 determines that the template corresponds to the user's residential area (YES in step S1204), then in step S1205, the layoutdata generation function 301 adds the template to a template list as a candidate of an output target. Subsequently, in step S1206, if the layoutdata generation function 301 determines that there is a next template (YES in step S1206), the processing returns to step S1202. Through the determination processing in step S1206, the layoutdata generation function 301 performs the processing insteps 1202 to 1205 on all the templates stored in theHD 107 or theROM 110. Accordingly, among all the templates, templates that match the conditions insteps 1202 to 1204 are added to the template list. - Then, in step S1207, if the template list generated in step S1205 includes a template that is not yet used according to its usage history, the layout
data generation function 301 extracts a template that has been used in the past according to its usage history, and performs processing for lowering the priority of the extracted template. More specifically, in step S1207, the layoutdata generation function 301 determines whether the template list generated in step S1205 includes a template that is not yet used according to its usage history. The usage history is, for example, the history of use of the template with respect to the ID of the layout data generation condition obtained in step S1201. - In other words, if layout data is output a plurality of times according to the timing information of the same layout data generation condition, a template that is not used until the output of the layout data is identified in the template list. Then, if the template list includes a template that is not yet used according to its usage history, the priority of a template that has been used according to its usage history is made lower than the priority of the template that is not yet used according to its usage history. Consequently, a template that is not yet used according to its usage history will be selected in step S1208. Thus, when layout data pieces having a plurality of patterns can be generated from a plurality of templates, it is possible to preferentially output a template that the user has not viewed among the plurality of templates. If the template list does not include a template that is not yet used according to its usage history, in other words, if all the templates in the template list have been used, the layout
data generation function 301 selects a template among the used templates without performing the processing for lowering the priority. - In step S1208, the layout
data generation function 301 selects a template having the highest priority. Then, in step S1209, if the layoutdata generation function 301 determines that two or more templates are selected in step S1208 (YES in step S1209), the processing proceeds to step S1210. For example, if the template list includes a plurality of templates that are not yet used according to their usage histories (templates to be used for the first time), the processing proceeds to step S1210. In step S1210, the layoutdata generation function 301 randomly selects one template to be used from among the templates selected in step S1208. - In step S1207, the layout
data generation function 301 determines the priority order of templates based on whether a template has been used according to its usage history, that is, whether a template has been used to generate layout data. The determination of the priority order, however, is not limited to this method. Alternatively, the priorities of templates may be weighted based on the number of times of use of the templates. Thus, even if a plurality of templates have been used according to their usage histories in the processing insteps 1208 to 1210, it is possible to preferentially select a template having a small number of times of use among the plurality of templates. - As described above, the layout
data generation function 301 can select an image preferred by the user as a target to be arranged on a template by the processing illustrated inFIG. 10 . In addition, by the processing illustrated inFIG. 12 , the layoutdata generation function 301 can select a template which is not used by the user as an output target. Thus, the layoutdata generation function 301 arranges an image preferred by the user to an unused template to generate layout data. The layoutdata presentation function 307 presents the thus generated layout data to the user. Then, if the user issues an instruction to print the presented layout data, theprinter 105 prints an image corresponding to the layout data on a printing medium. Alternatively, if the user issues an instruction to store the presented layout data, theHD 107 stores the layout data as one file. Thus, an image that the user desires to output can be output in a variety of layouts. - In the above-described exemplary embodiment, to select an image and a template as output targets, an image and a template are selected by a combination of conditions having a plurality of items including a person and an event. Thus, based on the processing according to the above exemplary embodiment, it is possible to generate layout data in which an image related to a particular person and a particular event is arranged on a template appropriate for the person and the event.
- Particularly, according to the above-described exemplary embodiment, the date/time information corresponding to the person and the event related to an image is compared with the date and time (the current date and time) of outputting the layout data, thus an image and a template corresponding to the current date and time can be selected. Therefore, according to the above-described exemplary embodiment, layout data in which an image that matches the current date and time is arranged on a template suitable for the image can be presented to the user.
- In the above description, to select a template to be output, a template is selected based on the ID of the layout data generation condition. Next, an example is described as a second exemplary embodiment in which a template is selected based on a keyword of a layout data generation condition.
- The
template 303 according to the present exemplary embodiment stores in themetadata portion 901 one or more keywords indicating for what purpose of use thetemplate 303 has been generated. Further, a person and an event corresponding to the layoutdata generation condition 302 serve as keywords corresponding to the layoutdata generation condition 302. Then, the layoutdata generation function 301 compares the keywords of thetemplate 303 with the keywords in information included in layout data generation conditions to select a template. As a condition for selecting a template, an example for using printer information of a printer used by a user is also described in addition to the conditions in the template selection processing inFIG. 12 . -
FIG. 13 illustrates an example of the configuration of thetemplate 303. Thetemplate 303 includes ametadata portion 1301 and atemplate portion 1302. Themetadata portion 1301 stores one or more keywords indicating for what purpose of use thetemplate 303 has been generated. Thetemplate 303 illustrated inFIG. 13 is a template expected to be used for, for example, a child's entrance ceremony. It is indicated that the template is generated under the theme of flowers and cherry blossoms. Thetemplate portion 1302 is similar in configuration to thetemplate portion 902 inFIG. 9 . -
FIG. 14 (includingFIGS. 14A and 14B ) is a flow chart illustrating a example of the template selection processing performed by the layoutdata generation function 301. InFIG. 14 , the processing similar to those described inFIG. 12 are denoted by the same step numbers, and the descriptions thereof are omitted here. - In step S1401, the layout
data generation function 301 sets as condition keywords the keywords described in the layout data generation condition selected in step S1006 inFIG. 10 . The keywords described in the selected layout data generation condition are, for example, the target person “father” and the event “birthday” in the layout data generation condition of theID 001 inFIG. 8 . - In step S1402, the layout
data generation function 301 compares the keywords described as metadata in the template with the condition keywords obtained in step S1401, and determines whether there are keywords that match each other. In step S1402, if the layoutdata generation function 301 determines that there are keywords that match each other between the keywords described in the template and the condition keywords (YES in step S1402), the layoutdata generation function 301 performs the processing in step S1203 and the subsequent steps. In steps S1203 and S1204, the processing similar to those inFIG. 12 are performed. - In step S1405, the layout
data generation function 301 obtains printer information indicating a state and a capability of a printer used by the user, and determines whether the template corresponds to the printer information. The printer information is extracted from theprinter 105 by the device management application stored in thehost computer 100. Then, the layoutdata generation function 301 obtains the printer information extracted as described above. In addition, the capability and the state of the printer corresponding to the template is described in themetadata portion 901 of thetemplate 303. In step S1405, the layoutdata generation function 301 compares the printer information with information described in the template, and determines whether the template corresponds to the capability and the state of theprinter 105. -
FIG. 15 illustrates examples of the printer information and template selection criterion based on the printer information. As illustrated inFIG. 15 , the layoutdata generation function 301 obtains as the printer information a sheet size which can be used for printing in theprinter 105 used by the user, and select a template corresponding to the sheet size. Alternatively, the layoutdata generation function 301 may obtain as the printer information a sheet size which is used for printing in the past according to its history in theprinter 105 used by the user, and select a template corresponding to the sheet size. Yet alternatively, the layoutdata generation function 301 may obtain as the printer information amounts of remaining ink of theprinter 105 used by the user, and select a template that mainly uses the color of an ink having a sufficient amount of remaining ink. In steps S1205 to S1210, the processing similar to those inFIG. 12 are performed, and therefore, the descriptions thereof are omitted. - As described above, in the example illustrated in
FIG. 14 , a template is selected using as keywords a person and an event to be output. Thus, it is possible to select a template that matches a layout data generation condition without matching an ID described in the template with the ID of the layout data generation condition as in the processing illustrated inFIG. 12 . Therefore, when a layout data generation condition and a template are added, it is possible to easily select the newly added template based on the newly added layout data generation condition. - Next, an example is described as a third exemplary embodiment in which a user newly adds a layout data generation condition. In this example, the user issues an instruction using any of the operation devices, to add keywords.
- For example, when an image file is stored in the
image database 306, the user inputs event information by operating any of the operation devices, and registers the event information in the ancillary information of the image file. As illustrated inFIG. 7 , it is assumed that the user registers an event having then event name “cherry blossom viewing with family”, the event category “travel”, and the event occurrence date “2012/4/1”. As a result, a layout data generation condition corresponding to the event information is newly added. -
FIG. 16 illustrates the layout data generation condition having the keywords registered by the user. As a result of the user registering the event, acondition 1601 inFIG. 16 is added as the layout data generation condition. If information registered as an event by the user is added to the layoutdata generation condition 302, the timing information is uniformly set as “one month after event occurrence, year not considered”. The timing information, however, may be set according to the event information input by the user. For example, if the event category “travel” is selected, the timing information “two months after event occurrence, year not considered” may be set. Alternatively, if the event category “birthday” is selected, the timing information “one month before and after birthday, year not considered” may be set. - Then, if a template describing the keyword “cherry blossom viewing with family” is stored, the template is selected under the
condition 1601. Thus, the user can register, in an image, keywords (a person and an event) for a template, and add the keywords as a layout data generation condition. Therefore, when layout data is generated using an image file related to an event registered by the user, it is possible to generate the layout data using a more appropriate template. - According to the above-described exemplary embodiments, when layout data is generated, an image to be output and a template on which the image is arranged are selected based on a combination of a plurality of types of attributes of an image, such as a person included in the image and an event related to the image. Thus, it is possible to select an appropriate template for an image to be output, and present, to the user, layout data in which the image to be output is arranged on the template.
- Further, according to the above-described exemplary embodiments, the date/time information corresponding to the attributes of an image, such as a person and an event, is compared with the date and time (the current date and time) of outputting the layout data, so that the attributes of an image corresponding to the current date and time can be identified. Then, an image and a template are selected according to the attributes of the image, and therefore, it is possible to present, to the user, layout data in which the image that matches the current date and time is arranged on a template that matches the current date and time.
- In the above description, an example is described in which, when a template is selected, a template is selected that corresponds to a combination of a plurality of types of attributes of an image, such as a person and an event. The exemplary embodiments, however, are not limited to this configuration. Alternatively, a template may be selected according to one type of an attribute, such as a person or an event. For example, if the attributes of an image include “birthday”, a template corresponding to a birthday may be selected.
- Further, the
application software 101 described above for generating layout data may generate and output layout data at various timings. For example, theapplication software 101 may generate layout data when thehost computer 100 is activated. Alternatively, theapplication software 101 may generate layout data according to an instruction issued by the user. - Further, as a method for outputting layout data, the layout
data presentation function 307 may perform a method for causing themonitor 106 inFIG. 1 to display layout data in the form of a slideshow, or a method for causing theprinter 105 to perform print output of layout data. A method for outputting layout data is not limited to the presentation to a user. For example, layout data may be stored as image data in theHD 107 of thehost computer 100, or may be transmitted to an external apparatus. - According to the above-described exemplary embodiments, a photographic image photographed by a camera is described as an example of an object to be arranged on a template. The exemplary embodiments, however, are not limited to this example. Alternatively, an object may be vector data of a figure or text data. In this case, for example, the date/time information of the date and time when a file of a vector image or text data has been generated is obtained from the file as the photographing date and time described above.
- Further, according to the above-described exemplary embodiments, a person included in an image and an event related to the image is described as examples of information pieces about the image. The exemplary embodiments, however, are not limited to this example. Alternatively, for example, in the case of figure data and a text image, the outlines and the generation dates and times of the figure and the text may be registered. At this time, based on a combination of the outlines and the generation dates and times of the figure and the text, a figure and text corresponding to the combination are selected, and also a template corresponding to the combination is selected.
- Further, according to the above-described exemplary embodiments, an image and a template are selected based on information indicating both a date and a time, such as the current date and time and the photographing date and time of an image. The exemplary embodiments, however, are not limited to this example. Alternatively, an image and a template may be selected according to information regarding a date such as the current date or the photographing date of an image without considering a time, or may be selected according only to a time.
- Embodiments of the present invention can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions recorded on a storage medium (e.g., non-transitory computer-readable storage medium) to perform the functions of one or more of the above-described embodiments of the present invention, and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiments. The computer may comprise one or more of a central processing unit (CPU), micro processing unit (MPU), or other circuitry, and may include a network of separate computers or separate computer processors. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD) (trade mark)), a flash memory device, a memory card, and the like.
- A program code for implementing the functions according to the present exemplary embodiments may be executed by one computer (a CPU or a micro processing unit (MPU)), or may be executed with the cooperation of a plurality of computers. Further, the program code may be executed by a computer, or hardware may be provided such as a circuit for implementing the functions of the program code. Alternatively, a part of the program code may be implemented by hardware, and a program corresponding to the remaining part may be executed by a computer.
- While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all modifications, equivalent structures, and functions.
- This application claims the benefit of Japanese Patent Application No. 2012-153677, filed Jul. 9, 2012, which is hereby incorporated by reference herein in its entirety.
Claims (19)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012153677A JP6080409B2 (en) | 2012-07-09 | 2012-07-09 | Information processing apparatus, information processing method, and program |
JP2012-153677 | 2012-07-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
US20140009793A1 true US20140009793A1 (en) | 2014-01-09 |
US9405494B2 US9405494B2 (en) | 2016-08-02 |
Family
ID=49878331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/934,757 Active US9405494B2 (en) | 2012-07-09 | 2013-07-03 | Apparatus and method for outputting layout data according to timing information, and storage medium |
Country Status (2)
Country | Link |
---|---|
US (1) | US9405494B2 (en) |
JP (1) | JP6080409B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170053191A1 (en) * | 2014-04-28 | 2017-02-23 | Nec Corporation | Image analysis system, image analysis method, and storage medium |
CN112615970A (en) * | 2019-10-03 | 2021-04-06 | 佳能株式会社 | Method, storage medium, and apparatus for controlling display of picture in which metadata is set |
US11412102B2 (en) * | 2020-03-25 | 2022-08-09 | Fujifilm Business Innovation Corp. | Information processing apparatus, and non-transitory computer readable medium for splitting documents |
US11514631B2 (en) * | 2019-08-08 | 2022-11-29 | Canon Kabushiki Kaisha | Control method |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016058923A (en) * | 2014-09-10 | 2016-04-21 | カシオ計算機株式会社 | Image processing system, image processing method, and program |
CN106023083A (en) * | 2016-05-25 | 2016-10-12 | 北京小米移动软件有限公司 | Method and device for obtaining combined image |
JP2020035086A (en) * | 2018-08-28 | 2020-03-05 | 富士ゼロックス株式会社 | Information processing system, information processing apparatus and program |
US11816429B2 (en) * | 2021-06-25 | 2023-11-14 | Atlassian Pty Ltd. | Document template recommendation system for collaborative document management system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060220983A1 (en) * | 2005-03-15 | 2006-10-05 | Fuji Photo Film Co., Ltd. | Album creating apparatus, album generating method and program |
US20100002258A1 (en) * | 2008-07-01 | 2010-01-07 | Canon Kabushiki Kaisha | Printing apparatus and control method therefor |
US20110283210A1 (en) * | 2010-05-13 | 2011-11-17 | Kelly Berger | Graphical user interface and method for creating and managing photo stories |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008529150A (en) * | 2005-01-28 | 2008-07-31 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Dynamic photo collage |
JP4762762B2 (en) * | 2006-03-07 | 2011-08-31 | 富士フイルム株式会社 | Album creating apparatus, album creating method, and program |
JP2007310553A (en) * | 2006-05-17 | 2007-11-29 | Konica Minolta Opto Inc | Program and method for creating composite image |
JP2011022420A (en) * | 2009-07-16 | 2011-02-03 | Sharp Corp | Image display device |
JP5556330B2 (en) * | 2010-04-21 | 2014-07-23 | セイコーエプソン株式会社 | Image processing apparatus, image processing method, and program thereof |
-
2012
- 2012-07-09 JP JP2012153677A patent/JP6080409B2/en active Active
-
2013
- 2013-07-03 US US13/934,757 patent/US9405494B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060220983A1 (en) * | 2005-03-15 | 2006-10-05 | Fuji Photo Film Co., Ltd. | Album creating apparatus, album generating method and program |
US20100002258A1 (en) * | 2008-07-01 | 2010-01-07 | Canon Kabushiki Kaisha | Printing apparatus and control method therefor |
US20110283210A1 (en) * | 2010-05-13 | 2011-11-17 | Kelly Berger | Graphical user interface and method for creating and managing photo stories |
Non-Patent Citations (1)
Title |
---|
Machine translation for JP 2007-310553, IDS, 11/29/2007 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170053191A1 (en) * | 2014-04-28 | 2017-02-23 | Nec Corporation | Image analysis system, image analysis method, and storage medium |
US10552713B2 (en) * | 2014-04-28 | 2020-02-04 | Nec Corporation | Image analysis system, image analysis method, and storage medium |
US11157778B2 (en) * | 2014-04-28 | 2021-10-26 | Nec Corporation | Image analysis system, image analysis method, and storage medium |
US11514631B2 (en) * | 2019-08-08 | 2022-11-29 | Canon Kabushiki Kaisha | Control method |
CN112615970A (en) * | 2019-10-03 | 2021-04-06 | 佳能株式会社 | Method, storage medium, and apparatus for controlling display of picture in which metadata is set |
US11412102B2 (en) * | 2020-03-25 | 2022-08-09 | Fujifilm Business Innovation Corp. | Information processing apparatus, and non-transitory computer readable medium for splitting documents |
Also Published As
Publication number | Publication date |
---|---|
US9405494B2 (en) | 2016-08-02 |
JP6080409B2 (en) | 2017-02-15 |
JP2014016790A (en) | 2014-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9405494B2 (en) | Apparatus and method for outputting layout data according to timing information, and storage medium | |
US9972113B2 (en) | Computer-readable recording medium having stored therein album producing program, album producing method, and album producing device for generating an album using captured images | |
US9761031B2 (en) | Image processing apparatus and image processing method | |
US10055640B2 (en) | Classification of feature information into groups based upon similarity, and apparatus, image processing method, and computer-readable storage medium thereof | |
US20140010415A1 (en) | Image processing apparatus, method thereof, and computer-readable storage medium | |
US10943376B2 (en) | Image processing apparatus for laying out image on template and image processing method | |
US9542594B2 (en) | Information processing apparatus, method for processing information, and program | |
US20200279423A1 (en) | Apparatus, method and medium | |
JP2014016800A (en) | Image processor, image processing method, and program | |
JP7463473B2 (en) | Image candidate determination device, image candidate determination method, program for controlling the image candidate determination device, and recording medium storing the program | |
US9904879B2 (en) | Image processing apparatus, image processing method, and storage medium | |
US11412102B2 (en) | Information processing apparatus, and non-transitory computer readable medium for splitting documents | |
US10558745B2 (en) | Information processing apparatus and non-transitory computer readable medium | |
JP2020140557A (en) | Image processing device, control method, and program | |
US9886453B2 (en) | Apparatus for identifying output target content, method thereof, and storage medium | |
JP6262708B2 (en) | Document detection method for detecting original electronic files from hard copy and objectification with deep searchability | |
JP2020140555A (en) | Image processing device, control method, and program | |
JP6341843B2 (en) | Image search apparatus and image search system | |
JP6704680B2 (en) | Display device, information processing program, and information processing method | |
US20230206660A1 (en) | Image processing apparatus, image processing method, and storage medium | |
US11336779B2 (en) | Information processing apparatus, and non-transitory computer readable medium | |
JP2019095855A (en) | Checking device, method for checking, and program | |
US20150062660A1 (en) | File management apparatus and file management method | |
JP2020140556A (en) | Image processing device, control method, and program | |
JP2015087805A (en) | Information processing device, information processing method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: CANON KABUSHIKI KAISHA, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TOMIOKA, YU;REEL/FRAME:033033/0160 Effective date: 20130625 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |