Control method for an apparatus for controlling a reading apparatus and storage medium

A control method for an apparatus for controlling a reading apparatus that performs reading in a transmission mode includes a read controlling step, a generating step and a processing step. In a read controlling step, the reading apparatus is controlled to read at least one film in the transmission mode based on a reading instruction from operating system standard software. In a generating step, a display image is generated, in which at least one frame image is arranged, based on a read image obtained by the reading in the read controlling step. In a processing step, a processing for displaying the display image generated in the generating step by using the operating system standard software, is executed.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates to a control method for an apparatus for controlling a reading apparatus and a storage medium.

Description of the Related Art

Among scanners (image processing apparatuses) capable of performing image reading processing, there are scanners that can achieve various reading modes. For instance, there is a scanner that can selectively switch between a flatbed mode to move a reading sensor relative to an original placed on a platen and an automatic document feeder (ADF) mode to move the original relative to the reading sensor. There is also a scanner designed to read an image in a reflection mode and to read an image in a transmission mode.

Each of these image processing apparatuses is generally controlled under the instructions from an information processing apparatus such as a personal computer. To be more precise, an operating system (OS) installed on the information processing apparatus reads a device driver in response to a request from an application, and controls the image processing apparatus through the device driver thus read out.

Japanese Patent Laid-Open No. 2005-148928 discloses a method of preparing an extended interface for exchanging setting information unique to a device driver, recognizing the setting information unique to the device driver by using management information obtained through the extended interface, and notifying an application of the setting information.

In general, device drivers (hereinafter simply referred to as drivers) include a vendor driver provided by a vendor of an image processing apparatus, and a standard driver provided by an OS manufacturer. The vendor driver is capable of utilizing various functions provided uniquely to the image processing apparatus, such as displaying a user interface unique to the vendor, presenting various extended functions to a user through the user interface, and accepting execution commands of the functions from the user.

Meanwhile, the standard driver is a general-purpose driver equipped with basic functions. The standard driver is less likely to cause security problems as compared to the vendor driver and is more adaptable to OS upgrading. The standard driver also has an advantage of compatibility with various image processing apparatuses.

However, the use of the standard driver may lead to a failure to utilize the extended functions provided uniquely to each image processing apparatus. For example, the image processing apparatus equipped with a reflection scanning function to read an image in a reflection mode and a transmission scanning function to read an image in a transmission mode may fail to execute the transmission scanning if the information processing apparatus uses the standard driver. In other words, even if an original suitable for transmission scanning such as a negative film is set on the image processing apparatus, the image processing apparatus may be capable of reading this transmissive original in the reflection scanning mode only.

SUMMARY OF THE INVENTION

The present invention has been made to solve the above-mentioned problem. An object of the present invention is to provide an image processing apparatus that is capable of appropriately reading a transmissive original even in a case where the image processing apparatus is controlled by a standard driver that does not support the scan processing on the transmissive original.

In a first aspect of the present invention, there is provided a control method for a reading apparatus configured to perform reading in a transmission mode for reading a film by using transmission light transmitted through the film, comprising: a read controlling step of causing the reading apparatus to read at least one film in the transmission mode based on a reading instruction from operating system standard software, wherein the at least one film includes a plurality of frames; a generating step of generating a display image based on a read image obtained by the reading in the read controlling step, wherein at least one frame image corresponding to at least one of the plurality of frames is arranged in the display image; and a processing step of executing processing for displaying the display image generated in the generating step by using the operating system standard software.

In a second aspect of the present invention, there is provided a non-transitory computer readable storage medium storing a program for causing a computer to execute a control method for a reading apparatus configured to perform reading in a transmission mode for reading a film by using transmission light transmitted through the film, the control method comprising: a read controlling step of causing the reading apparatus to read at least one film in the transmission mode based on a reading instruction from operating system standard software, wherein the at least one film includes a plurality of frames; a generating step of generating a display image based on a read image obtained by the reading in the read controlling step, wherein at least one frame image corresponding to at least one of the plurality of frames is arranged in the display image; and a processing step of executing processing for displaying the display image generated in the generating step by using the operating system standard software.

Further features of the present invention will become apparent from the following description of exemplary embodiment with reference to the attached drawings.

DESCRIPTION OF THE EMBODIMENTS

Embodiments of the present invention will be described below in detail with reference to the accompanying drawings. Note that the following description of the embodiments is not intended to limit the scope of the present invention as defined in the appended claims. In addition, it is to be also understood that a solution of the present invention does not always require a combination of all of the features described in the embodiments.

First Embodiment

FIG. 1is a diagram showing an image processing system used in this embodiment. The image processing system of this embodiment includes an information processing apparatus100and an image processing apparatus200.

In the information processing apparatus100, a CPU101controls the entire apparatus in accordance with various programs stored in a ROM102or in an external storage device104while using a RAM103as a work area. The ROM102stores an initialization program. The external storage device104stores software including an operating system (OS), an application, a standard library, a standard driver, and a vendor driver as well as various data.

An input interface105provides the CPU101with an instruction inputted through a mouse107and a keyboard108. An output interface106displays prescribed information on a display unit109in accordance with an instruction from the CPU101. A user can input various settings and commands by using the mouse107and the keyboard108while checking the information displayed on the display unit109. A USB interface110exchanges information with a USB interface204of the image processing apparatus200through a USB cable300. Here, the information processing apparatus100and the image processing apparatus200may be connected through a network using LAN interfaces or the like instead of the interfaces110and204.

In the image processing apparatus200, a CPU201controls the entire apparatus in accordance with programs stored in a ROM202while using a RAM203as a work area. A scan engine205includes an optical sensor to be described later, a motor to drive the optical sensor, and the like, and performs a variety of scan processing under the control of the CPU201and based on contents of jobs stored in the RAM203. In this instance, the scan engine205operates an ADF206and a transmissive original unit207as needed. Image data obtained in a reading operation performed by the scan engine205is loaded on the RAM203and a variety of processing to be described later is implemented by the CPU201.

FIG. 2is a schematic diagram showing a software configuration of the information processing apparatus100. In a case where the user intends to perform processing to scan an original by using the image processing apparatus200, the user starts an application500on the information processing apparatus100. The application500is a scanning application that causes the image processing apparatus200to perform scan processing through any of a standard library501, a vendor driver502, and a standard driver503, and stores an image obtained by the image processing apparatus200.

Meanwhile, the application500invokes a program in the standard library501included in the OS by using an application program interface defined in standard terms of the application (hereinafter referred to as a standard API).

Based on a command of the application500, the standard library501accumulates a content of control in its own variable or issues a command to the vendor driver502or the standard driver503by using a driver API. The vendor driver502is a driver provided by a vendor of the image processing apparatus200. The standard driver503is a driver provided by an OS manufacturer and included in the OS. The vendor driver502controls the image processing apparatus200by using a vendor protocol defined uniquely by the vendor. The standard driver503controls the image processing apparatus200by using a standard protocol defined by the OS manufacturer or a standardization organization.

Upon receipt of a driver start instruction from the application500, the standard library501switches between an action to start the vendor driver502and an action to start the standard driver503as appropriate. As for a condition for this switching, the driver to be started may be switched depending on the type of the application500, for example. To be more precise, the vendor that offers the vendor driver502provides a scanning application for the vendor driver502and a scanning application for the standard driver503as the applications500. Moreover, in the case of installing these scanning applications, information for specifying the drivers corresponding to the scanning applications is stored in an area that can be referred to by the standard library501. Then, upon receipt of the driver start instruction from the application500, the standard library501starts the driver specified in the information. Here, a single application500may designate the vendor driver502or the standard driver503and the standard library501may start the designated driver.

The vendor driver502that uses the vendor protocol can send a detailed instruction to the image processing apparatus200so that the image processing apparatus200can fully utilize functions provided thereto. Meanwhile, the standard driver503that uses the standard protocol sends a standard instruction which is common to various image processing apparatuses.

Specifically, in a case of utilizing the image processing apparatus200in a standard mode, there is no difference between the vendor driver502and the standard driver503. However, in a case where the image processing apparatus200has a unique extended function, the standard driver503may not be able to utilize the extended function.

In this embodiment, the image processing apparatus200is assumed to be capable of implementing scan processing in a standard reflection mode (hereinafter referred to reflection scanning) and scan processing in a transmission mode (hereinafter referred to as transmission scanning). Details of the reflection scanning and the transmission scanning will be described later with reference toFIGS. 3A to 5C. Then, the vendor driver502that can use the vendor protocol supports the reflection scanning and the transmission scanning for the image processing apparatus200, and can unambiguously instruct the image processing apparatus200which scan processing to perform. On the other hand, the standard driver503that uses the standard protocol is assumed to support the reflection scanning but not to support the transmission scanning. Specifically, though the standard driver503can send a command concerning the reflection scanning, the standard driver503cannot send a command concerning the transmission scanning. Even if the application500attempts to invoke the function extended by using the vendor driver502through the standard driver503, the standard driver503which does not understand the vendor protocol will ignore this invocation or determine the invocation as an error.

FIGS. 3A to 3Care schematic configuration diagrams of the image processing apparatus200of this embodiment. The image processing apparatus200of this embodiment is a scanner which can implement the reflection scanning to irradiate an original with light and to read the light reflected from the original with an optical sensor, and the transmission scanning to irradiate an original with light and to read the light transmitted through the original with an optical sensor.

The image processing apparatus200mainly includes a platen209and a platen cover208.FIG. 3Ais an external perspective view showing a state where the platen cover208is closed whileFIG. 3Bis an external perspective view showing a state where the platen cover208in open. In the case of causing the image processing apparatus200to perform the scan processing, the user opens the platen cover208and then closes the platen cover208in a state where an original is placed on the platen209.

FIG. 3Cis a diagram of the platen209viewed from above. A flat and smooth platen glass210is fitted into a surface of the platen209. A scanner bar211extending in an X direction is provided below (on a −Z direction side of) the platen glass210. The scanner bar211is equipped with a reflection light source212extending in the X direction and optical sensors213arranged in the X direction.

FIGS. 4A and 4Bare diagrams showing appearances of a platen protection sheet223being attached to the platen cover208. The platen protection sheet223is attached to the platen cover208in the case where the image processing apparatus200performs the reflection scanning. As shown inFIG. 4A, the platen protection sheet223includes a white sheet224that covers the entire surface of the platen glass210. The white sheet224reflects light emitted from the reflection light source212at high reflectivity to stabilize reading of the original. Protection sheet hooks225are provided at two ends of the platen protection sheet223so as to function as positioning members in the case of attaching the platen protection sheet223to the platen cover208.

FIG. 4Bshows a lower surface of the platen cover208, or in other words, a surface to come into contact with the platen209. The platen protection sheet223is attached to this surface in the state shown inFIG. 4B. The platen protection sheet223can be attached to the platen cover208by engaging the protection sheet hooks225with protection sheet notches222of the platen cover208.

In the case of performing reflective original scanning in a flatbed mode, the user closes the platen cover208attaching the platen protection sheet223in a state of placing the original on the platen209in such a way as to bring a surface of the original to be read into contact with the platen glass210, and then starts desired scan processing. Thus, the scanner bar211with the reflection light source212being turned on moves in a Y direction at a prescribed speed and the optical sensors213detect the light reflected from the original in the process of the movement. As a consequence, an image on the original pressed against the platen glass210is obtained.

Here, guide notches214for positioning a film guide used in the transmission scanning are disposed on ±Y sides of the platen glass210of the platen209(seeFIG. 3C).

FIGS. 5A to 5Care diagrams for explaining a setting configuration of the original in the case of performing the transmission scanning. The image processing apparatus200of this embodiment can use a negative film or a positive film as the original in the transmission scanning.FIG. 5Ashows film guides used in the case of performing the transmission scanning. In this embodiment, a sleeve film guide215, a slide film guide216, and a brownie film guide217are prepared so that each film guide in a state of loading the corresponding film can be set on the platen209. Guide hooks218are provided on upper and lower end portions of each of the film guides215to217, which serve as positioning members in the case where each film guide is set on the platen209. Moreover, detection patterns219to identify types of the film guides, or in other words, types of the films are formed at the upper ends of the respective film guides215to217.

FIG. 5Bshows a state of setting the sleeve film guide215on the platen209by engaging the guide hooks218with the guide notches214of the platen209.

FIG. 5Cshows the platen cover208in the state where the platen protection sheet223is detached therefrom. A transmission light source220and a transmission light source plate221extend in the Y direction at the center of the platen cover208.

In the case of performing the transmission scanning, the user sets the film as the original on one of the film guides215to217and sets the one of the film guides215to217on the platen209. Then, the user closes the platen cover208and starts the prescribed scan processing. In this way, the emitted light from the transmission light source220is diffused by the transmission light source plate221, and the entire film surface is uniformly irradiated with the light from above. Meanwhile, the reflection light source212loaded on the scanner bar211is off. In this state, the scanner bar211moves in the Y direction at a predetermined speed. In this moving process, the optical sensors213can read the image on the original by detecting the light transmitted through the film.

Here, the transmission light source220may be formed from two or more light sources. Meanwhile, the transmission light source220and the transmission light source plate221may be moved in the Y direction together with the scanner bar211so as to be able to scan a film in a larger size. Moreover, the transmission light source220and the transmission light source plate221may be formed into a compact integrated cartridge so that this cartridge can be manually placed at various locations on the platen cover208.

In the meantime, although it is not illustrated inFIG. 3, the image processing apparatus200of this embodiment also includes the automatic document feeder (ADF)206. In the case of performing the reflection scanning by using the ADF206, the user sets the originals on the ADF206and then starts the prescribed scan processing. Thus, the originals loaded on the ADF206are fed one by one into the apparatus and conveyed at a constant speed so as to face the optical sensors213of the positioned scanner bar211. In the process of conveyance, the optical sensors213detect the light emitted from the reflection light source212and reflected from the originals, thereby reading the images on the originals.

Here, optical sensors for performing the reflection scanning using the ADF may be provided to the image processing apparatus200in addition to the optical sensors213for the flatbed. Meanwhile, optical sensors may be arranged on a top surface side and a bottom surface side of a conveyance path of the ADF so as to read the top and bottom surfaces of each original in the same conveyance operation.

FIGS. 6A and 6Bare diagrams each showing a UI screen900.FIG. 6Ashows the UI screen900for the vendor driver whileFIG. 6Bshows the UI screen for the standard driver provided by the standard library501(hereinafter also referred to as a UI screen907for the standard driver). In the case where the application500is a scanning application compatible with the vendor driver502, for example, the UI screen900is displayed as a consequence of activation of the vendor driver502by the standard library501. On the other hand, the standard library501displays the UI screen907in the case where the application500is a scanning application compatible with the standard driver.

Each of the UI screens900and907is provided with a region to display setting sections used for performing various settings and a region to display a preview image for displaying an image obtained by preview scan processing. Note that the regions to display common setting items and the preview image and buttons concerning the same functions in the UI screens900and907are denoted by the same reference numerals901to906, respectively. As the user clicks a scanning mode setting section902, multiple scanning modes executable by the image processing apparatus200are displayed so that the user can select one of the displayed scanning modes. Here, three signs of “Platen” indicating the reflection scanning in the flatbed mode, “ADF” indicating the reflection scanning in the ADF mode, and “Film” indicating the transmission scanning are selectably displayed on the UI screen900for the vendor driver displayed inFIG. 6A. On the other hand, only “Platen” and “ADF” are selectably displayed on the UI screen907for the standard driver shown inFIG. 6Bwithout displaying “Film”. Note that “Platen” is set as default both in the case of the vendor driver and in the case of the standard driver.

In a color mode setting section903, the user can select either “Color” or “Gray (Black & White)”. In a resolution setting section904, the user can set various reading resolutions either by selection or by manual input.

A special function setting section910for setting a special function of the image processing apparatus200is displayed on the UI screen900for the vendor driver shown inFIG. 6A. Here,FIG. 6Ashows an example of displaying a setting section for switching an unsharp function on and off. On the other hand, the special function setting section910is not displayed on the UI screen907for the standard driver shown inFIG. 6B.

A “Preview” button for instructing the preview scan processing and a “Scan” button for instructing real scan processing are displayed at a lower right part of the UI screen900. In the case where the user clicks the “Preview” button, either the vendor driver502or the standard driver503sends the image processing apparatus200a scanning instruction that includes the input mode and the color mode set on the UI screen900. The image processing apparatus200performs the preview scan processing based on the input mode and the color mode included in this scanning instruction, and provides the vendor driver502or the standard driver503with an obtained image. The vendor driver502or the standard driver503performs prescribed processing on the obtained image and displays the processed image on a preview image region901. The user can crop and designate a region in the preview image displayed on the preview image region901, on which the user would like to perform the real scan processing.

Here, a scanning instruction transmitted in the case of clicking the “Preview” button and a scanning instruction transmitted in the case of clicking the “Scan” button may be of different types from each other. In addition, the image processing apparatus200may execute scanning of the original in accordance with a distinct scanning method based on the type of the scanning instruction. For example, in the case where the “Preview” button is clicked, the scanning may be performed in accordance with a scanning method which is lower in resolution but higher in speed as compared to the case where the “Scan” button is clicked.

In the case where the user clicks the “Scan” button after performing the crop designation, the image processing apparatus200subjects the cropped and designated region to the scan processing in accordance with the set input mode, the set color mode, and the set resolution. Then, the image processing apparatus200sends the information processing apparatus100a scanned image obtained by scanning the original. The vendor driver502or the standard driver503forwards the scanned image received from the image processing apparatus200to the application500. Here, the scanned image is in a raw image format, for example. In the meantime, the image processing apparatus200may execute the scanning in accordance with the region that is cropped and designated or transmit the scanned image in accordance with the cropped and designated region. In the former case, the optical sensors213may be driven only for a portion corresponding to the cropped and designated region in terms of the Y direction inFIG. 3C, for example. Then, regarding the X direction, only a portion corresponding to the cropped and designated region may be transmitted to the information processing apparatus100, for instance. In the latter case, although the entire surface of the platen209is scanned, for example, only a portion corresponding to the cropped and designated region out of the scanned image may be transmitted to the information processing apparatus100.

FIG. 7is a diagram showing the UI screen900in the case where the user clicks the “Preview” button while setting “Film” in the scanning mode setting section902on the vendor driver502. In the case of setting “Film”, the vendor driver502sends the image processing apparatus200a scanning instruction including the “Film” settings. Upon receipt of the scanning instruction, the image processing apparatus200executes the above-mentioned transmission scanning and transmits the scanned image to the information processing apparatus100. The vendor driver502of the information processing apparatus100extracts frame images911corresponding to frames of a film out of the scanned image obtained from the image processing apparatus200. Then, the vendor driver502displays the frame images911in the region901as preview images in an arranged state as shown inFIG. 7.FIG. 7shows a state of displaying six frame images911. In the case where the original is a negative film, for example, the vendor driver502performs image processing including negative-to-positive conversion processing. In the case where the original is a positive film, the vendor driver502does not perform the negative-to-positive conversion processing but performs image processing suitable for the positive film instead. In the case of a 35-mm sleeve, the vendor driver502divides a sequential image into multiple frame images911. After performing the appropriate image processing or resize processing in conformity to the form of the original as mentioned above, the vendor driver502displays the arranged frame images in the preview image region901. The user can perform crop designation based on the frame images911displayed in thumbnails.

As the user selects desired frame images911out of the multiple thumbnail frame images911and clicks the “Scan” button, the vendor driver502sends the image processing apparatus200the following instruction. Specifically, the vendor driver502issues a scanning instruction to the image processing apparatus200so as to cause the image processing apparatus200to execute the real scan processing on the selected frame images911. In this instance, shooting conditions including exposure time, a shutter speed, weather, light direction, and the like at the time of shooting the relevant images may vary among the frame images911. Given the circumstances, the vendor driver502analyzes respective characteristics of the frame images911extracted in the preview scan processing and performs the real scan processing after setting the optimal light exposure time. For example, regarding a bright frame image, the real scan processing is performed after setting short exposure time to the optical sensors213so as to avoid saturation of detection values of the optical sensors213. On the other hand, regarding a dark frame image, the real scan processing is performed after setting long exposure time to the optical sensors213so as to expand a tone range of output values from the optical sensors213.

Meanwhile, the vendor driver502issues the following instruction in the case where the user clicks the “Preview” button or the “Scan” button in the scanning mode setting section902on the screen for the vendor driver502while setting the “Platen”. Specifically, the vendor driver502sends the image processing apparatus200a scanning instruction including the “Platen” settings in this case. Upon receipt of the scanning instruction, the image processing apparatus200executes the above-mentioned reflection scanning and transmits the scanned image to the information processing apparatus100.

The transmission scanning described above with reference toFIG. 7is the function executable in the case of using the vendor driver502. The standard driver503that uses the standard protocol can control the image processing apparatus200only in the range of the reflection scanning, and does not allow setting the “Film” in the scanning mode setting section902. In other words, the standard driver503cannot instruct the transmission scanning with the scanning instruction unlike the above-described case of using the vendor driver502. For this reason, even if the transmissive original such as the film was set on the image processing apparatus200, the user has not been able to obtain an appropriate read image in the case of using the standard driver.

In order to improve this situation, the image processing apparatus200of this embodiment stores a scan program for executing scan processing on a transmissive original appropriately while exchanging information with the standard driver503in the same form as in the case of a reflective original. To be more precise, in the case where the original loaded on the image processing apparatus200is the transmissive original, the CPU201of the image processing apparatus200causes the scan engine205to execute the preview scan processing or the real scan processing in the transmission mode. Then, the CPU201performs prescribed processing on the image obtained in the transmission mode so as to generate an image similar to an image obtained in the case of executing the preview scan processing or the real scan processing in the reflection mode, and this image is used for exchanging the information with the standard driver503. Now, more details will be described below.

FIG. 8is a diagram showing a configuration of control across software components in the information processing apparatus100and the image processing apparatus200in the case of using the standard driver503. The user gives an instruction to the image processing apparatus200through the mouse107and the keyboard108while checking the information by using the display unit109. To be more precise, the user causes the standard library501to display the UI screen907as shown inFIG. 6Bthrough the application500, and gives various settings and instructions concerning the image processing apparatus200by using the UI screen907. The application500exchanges the information with the standard library501by using a linked standard API. The standard library501exchanges the information with the standard driver503by using a driver API. The standard driver503exchanges the information with a scan program230of the image processing apparatus200by using the standard protocol.

The scan program230is a program stored in the ROM202of the image processing apparatus200. In the case where a command is inputted from the standard library501through the standard driver503, the CPU201reads the scan program230out of the ROM202and executes a variety of processing while using the RAM203as the work area (seeFIG. 1). In other words, the CPU201controls the scan engine205in accordance with the scan program230.

FIG. 9is a diagram showing processing procedures in the case where the user instructs the preview scanning through the standard driver while setting the transmissive original on the image processing apparatus200. InFIG. 9, the application500, the standard library501, and the standard driver503are the software components executed by the CPU101of the information processing apparatus100. The scan program230is a software component stored in the ROM202of the image processing apparatus200and executed by the CPU201. The scan engine205is a hardware component to be controlled by the CPU201of the image processing apparatus200in accordance with the scan program230.

In the case of starting this processing, the user activates the application500and selects a menu such as “import from scanner” (S1010). The application500instructs the standard library501provided by the linked OS to display the UI screen900(S1020). Here, the application500may instruct the standard library501to display the UI screen900at the point of activation.

Receiving the instruction, the standard library501requests functional information (a device capability) of a selected device from the standard driver503(S1030). In this example, the information indicating whether or not the ADF is installed on the image processing apparatus200and the like is requested as the functional information, for instance. The standard driver503requests the function information on the image processing apparatus200from the scan program230of the image processing apparatus200by using the standard protocol (S1040).

The scan program230delivers the functional information on the scan engine205to the standard driver503(S1041). The standard driver503forwards the received functional information to the standard library501(S1031). The standard library501displays the UI screen900as shown inFIG. 6Bbased on the received functional information (S1032).

In the case where the functional information indicates the installation of the ADF, for example, “Platen” and “ADF” are selectable in the scanning mode setting section902on the UI screen900. In this embodiment, “Film” is not indicated as an option because the information on the compatibility with the transmissive original is not included in the functional information. The user selects a desired input mode from the displayed options and clicks a “Preview” button905on the UI screen900(S1011). Here, let us assume that the “Preview” button905is clicked in the state where “Platen” is selected.

Having received the “Preview” instruction, the standard library501instructs the standard driver503to perform the preview scan processing on the reflective original, or in other words, simple scan processing on the entire surface of the platen209(S1033). The standard driver503also issues the same instruction to the scan program230(S1042).

The scan program230of the image processing apparatus200performs the preview scan processing based on the scanning instruction received from the standard driver503and on the state of the original set in the image processing apparatus200. Then, the scan program230subjects the scanned image obtained by the preview scan processing to prescribed image processing, and transmits the scanned image subjected to the processing to the standard driver503(S1043). Steps of S1050and S1051are procedures for allowing the scan program230to generate the aforementioned scanning result while controlling the scan engine205.

Now, steps from S1050to S1065will be explained one by one below. Upon receipt of the instruction of the preview scan processing on the reflective original from the standard driver503in S1042, the scan program230confirms with the scan engine205as to whether or not the scan processing on the transmissive original is to be performed (S1050). The scan engine205checks an original setting state of the image processing apparatus200and responds to the scan program (S1051).

Various methods can be used to check the original setting state. For example, in the case where the platen protection sheet223is attached to the platen cover208, the optical sensors213do not detect the light from the transmission light source220even if the transmission light source220is turned on. In this case, it is possible to determine that the reflective original is set on and the image processing apparatus is not in the state where scanning the original in the transmission mode is possible. Meanwhile, if a member used for scanning the original in the reflection mode, namely, the platen protection sheet223is not attached, then it is possible to determine that the image processing apparatus is in the state where scanning the original in the transmission mode is possible. On the other hand, in the case where any of the film guides215to217is set on the platen209, the optical sensors213can detect the detection pattern219and thus determine that the transmissive original is set on. In the example ofFIG. 9, the scan engine205responds to the scan program that the transmissive original has been set, or in other words, the scan processing of the transmissive original is to be executed (S1051).

Here, a not-illustrated sensor in the image processing apparatus200detects whether or not the platen protection sheet223is present or whether or not any of the film guides215to217is set on. Alternatively, the image processing apparatus200may execute a scanning operation and determine whether or not the platen protection sheet223is present or whether or not any of the film guides215to217is set on from a scanned image obtained by the scanning operation.

Next, the scan program230sets the scan engine205to a transmissive original scanning mode (S1052). Specifically, the scan program230turns on the transmission light source220and sets the scanning resolution. For example, in a case where the reading resolution of at least 300 dpi is required for the preview scan processing on the transmissive original, the reading resolution is changed to 300 dpi even if the instruction in the received command indicates a reading resolution below 300 dpi. This procedure may be omitted if the above-mentioned setting has been done already.

Then, the scan program230causes the scan engine205to execute the preview scan processing on the transmissive original (S1060). The scan engine205obtains detection values of the optical sensors213while moving the scanner bar211in a region of the transmissive original at a suitable speed for the preview scan processing on the transmissive original. In this embodiment, the detection values of the optical sensors213are RGB luminance values, and the raw image data containing the RGB luminance values corresponding to respective pixels are stored as the scanned image in the RAM203of the image processing apparatus200(S1061).

Next, the scan program230extracts one or more frame images911from the raw image obtained in S1060(S1062).

FIG. 10is a schematic diagram for explaining the processing on the raw image obtained in S1060to be performed by the scan program230.FIG. 10shows a case of setting a negative film on the sleeve film guide215. A raw image800includes a frame body of the sleeve film guide215and four images in the set negative film.

In S1062ofFIG. 9, the scan program230extracts images each representing a unit of shooting as the frame images911out of the above-mentioned raw image800. In this instance, the scan program230may use the detection pattern219for the film guide (seeFIG. 5A) included in the raw image800as a reference for cutting out the frame images911.FIG. 9shows an example of extracting the four frame images911from the raw image800.

Back to the explanation ofFIG. 9, the scan program230analyzes the respective frames and derives image processing conditions suitable for generating a preview image901regarding the respective frames in S1063. The image processing conditions include a necessity of performing the negative-to-positive conversion processing, a method of color correction processing, and the like. The scan program230performs the image processing on each of the frame images911based on the derived image processing conditions (S1063).

In the case ofFIG. 10, the four frame images911extracted in S1062are negative images and are therefore subjected to the image processing including the negative-to-positive conversion processing, respectively. As a consequence, four positive images are obtained.

Back to the explanation ofFIG. 9again, in S1064, the scan program230generates a preview image830by using the frame images911subjected to the image processing in S1063.

In the case where the frame images911are extracted in S1062, the scan program230counts the number N of the extracted frame images. The number N is equal to four in the case ofFIG. 10. In the meantime, the scan program230prepares a bitmap image that has a size (the number of pixels) obtained by the preview scan processing of the reflective original and in which all pixels are set to white (such an image will be hereinafter referred to as a blank image810). Then, the N pieces of frame regions820in the same size are arranged in the blank image810.

FIG. 11is a diagram showing layouts of the frame regions820in the blank image810regarding the numbers N of frames ranging from 1 to 16. The scan program230sets the size and the numbers of rows and columns of the frame regions820such that the N pieces of the frame regions820in the same size are arranged evenly in the entire region of the blank image810no matter what the number N of frames is.FIG. 10shows an example of arranging the four frame regions820into two rows and two columns in the blank image810.

Moreover, the scan program230lays out the four frame images911generated in S1063in the four frame regions820, respectively (S1064). In this way, the preview image830is generated as shown inFIG. 10.

Meanwhile, in the case of laying out the frame images911in the frame regions820, each of the frame images911needs to be resized at an appropriate enlargement rate with respect to the corresponding frame region820.

FIG. 12is a diagram showing a method of resizing the frame image911. Here, a width of the frame region820is indicated with Wi, a height of the frame region820is indicated with Hi, a width of the frame image911is indicated with Ws, and a height of the frame image911is indicated with Hs. The scan program230calculates a rate of the frame region820relative to the frame image911in terms of the width direction (Sw=Wi/Ws) and a rate of the frame region820relative to the frame image911in terms of the height direction (Sh=Hi/Hs). Then, the frame image911is enlarged in accordance with the smaller one of those rates and is laid out in the frame region820. InFIG. 12, an upper part shows a case where Sw>Sh holds true. In this case, the frame image911is enlarged by using the rate Sh in the height direction and is laid out in the frame region820. A lower part therein shows a case where Sw<Sh holds true. In this case, the frame image911is enlarged by using the rate Sw in the width direction and is laid out in the frame region820. The multiple frame images911may include landscape pictures and portrait pictures. In the case where every picture includes information that enables identification of the vertical direction, the above-described processing may be performed after turning the frame images911so as to align the vertical directions of all the pictures.

If the respective frame images911are arranged at regular intervals as shown inFIG. 10, the standard library501that receives the preview image830can easily generate crop frames later. It is to be noted, however, that the above-described layout method is a mere example and the user may customize the numbers of rows and columns, the layout positions, and the sizes of the frames in advance. In the meantime, if the standard library501does not set the crop frames, then the scan program230may draw thumbnail frames in the preview image830in S1064so that the user can perform crop work easily.

Back to the explanation ofFIG. 9again, in the case where the preview image830is obtained as shown inFIG. 10, the scan program230stores preview information in a memory, which will be required in a case of receiving the next scanning instruction (S1065). To be more precise, the raw image800obtained in the preview scan processing and correspondence information between the coordinates of each frame image on the platen and the coordinates thereof in the preview image are stored in the memory (S1065).

FIGS. 13A to 13Care diagrams for explaining coordinate information.FIG. 13Ashows an x-coordinate and a y-coordinate of a frame image911extracted from the raw image800. The point of origin O shows the point of origin for reading on the platen209.FIG. 13Bshows an x-coordinate and a y-coordinate of the resized frame image911in the preview image830. The point of origin O′ shows the point of origin of the preview image830. In S1065, the scan program230associates the aforementioned types of the coordinate information with each of the frame images911and stores the frame images911in the memory.FIG. 13Cshows a state of storage in the memory. Note that the coordinate information will be used in the real scanning to be described with reference toFIG. 16.

Back to the explanation ofFIG. 9again, the scan program230transmits the generated preview image830to the standard driver503(S1043). Regarding the instruction for the preview processing on the reflective original (S1042), the standard driver503receives the preview image830in the same size as that in a case of actually performing the preview processing on the reflective original as an output image of a scanning result in S1043. That is to say, in the subsequent procedures, the standard driver503, the standard library501, and the application500can perform preview display of the data received in the same processing as the processing in the case of performing the preview scan processing on the reflective original.

The standard driver503forwards the scanning result received from the scan program230to the standard library501(S1034). The standard library501generates the preview image by using the obtained scanning result and displays the preview image on the region901of the UI screen900(S1035). Moreover, the standard library501generates the crop frames based on a prescribed crop detection logic and displays the crop frames on the preview image in the region901(S1036).

FIG. 14is a diagram showing an example of the UI screen907to be displayed on the display unit109in S1036. This diagram shows a case of extracting six frame images911. Here, the respective frame images911are laid out in an arrangement as shown inFIG. 14regardless of whether the film set on the image processing apparatus200is the sleeve film guide215or the slide film guide216. Meanwhile, in the case where the set film is the negative film, the respective frame images911are displayed in the preview image region901in the state after being subjected to the negative-to-positive conversion processing. In the preview image region901, crop frames912used for designating a scanning region in the case of performing the real scanning are selectably arranged on the respective frame images911.

As described above, the scan program230of this embodiment performs the preview scan processing appropriate for the transmissive original (S1051to S1061) while receiving the command of the preview scan processing on the reflective original from the standard driver503(S1042). Then, the scan program230subjects the obtained image to the processing appropriate for a transmission image such as the extraction of the frame images and the negative-to-positive conversion processing, thereby generating the preview image equivalent to a reflective image (S1062to S1065).

FIG. 15is a diagram showing processing procedures in a case where the user performs the preview through the standard driver while setting the reflective original on the image processing apparatus200. Note that procedures other than transactions between the scan program230and the scan engine205are the same as the corresponding procedures described with reference toFIG. 9and explanations thereof will be omitted here.

In this example, in reply to an inquiry from the scan program230in S1050, the scan engine205responds that the reflective original is in the set state, or in other words, that the scan processing on the transmission scanning is not performed (S1053).

In this case, the scan program230sets the scan engine205to a reflective original scanning mode. Specifically, the reflection light source212is turned on and the resolution in the preview scan processing is set for the reflective original (S1054). This procedure may be omitted in the case where these settings have been done already.

Next, the scan program230deletes the preview information on the transmissive original, that is, the raw image800and the coordinate information on the respective frame images stored in S1065ofFIG. 9(S1070).

Then, the scan program230causes the scan engine205to execute the preview scan processing on the reflective original (S1071). Upon receipt of this instruction, the scan engine205performs read processing under settings suitable for the reflective original. Specifically, the scan engine205moves the scanner bar211with the reflection light source212turned on across the entire region of the platen209at a speed suitable for the preview scan processing on the reflective original, thus obtaining the detection values from the optical sensors213. Then, the detection values are stored in the memory as the scanned image in the raw format (S1072). The scan program230generates the preview image830by subjecting the obtained raw image to the image processing suitable for the reflective original (S1073), and transmits the generated preview image830to the standard driver503as the scanning result (S1043).

As described above, even in the case where the preview command for the reflective original is received from the information processing apparatus100, the scan program230of the image processing apparatus200appropriately switches the mode of the preview scan processing depending on the type of the set original. In this way, the application500, the standard library501, and the standard driver503of the information processing apparatus100can perform the preview processing on the reflective original regardless of the type of the original actually set on the image processing apparatus200.

FIG. 16is a diagram showing processing procedures in the case of performing the real scan processing based on the preview image obtained in the preview scan processing described with reference toFIG. 9. The user selects each frame image911to be subjected to the real scanning by using the corresponding crop frame912on the preview image in the region901of the UI screen900shown inFIG. 14(S1012). In this case, the user can adjust the size of the crop frame912relative to the frame image911. Moreover, the user can select two or more frame images911at the same time. Furthermore, the user can also set the reading mode and the reading resolution during the real scanning by using the color mode setting section903and the resolution setting section904. In the case where the settings are completed, the user clicks a scan button906(S1013).

The standard library501that receives the command generates items necessary for the real scan processing, such as the coordinate information corresponding to each of the set crop frames912and the resolution set by using the resolution setting section904, and instructs the standard driver503to perform the real scanning (S1037). The standard driver503transmits the instruction to the scan program230(S1043).

The scan program230checks whether or not the preview information that was stored at the time of performing the preview scan processing (S1065) is stored in the memory (S1055). If the preview information is not stored, the scanning of the transmissive original is not ready. Accordingly, the processing proceeds to a real scan sequence for the reflective original. Here, the explanation will be continued on the assumption that the preview information is stored. Note that the case where the preview information is not stored will be described later with reference toFIG. 22.

Next, the scan program230inquires of the scan engine205as to whether or not the image processing apparatus200is in the state of setting the transmissive original (S1050). The scan engine205checks the setting condition of the original in the image processing apparatus200and responds to the scan program (S1051). In the case where the image processing apparatus200is in the state where the transmissive original is set, the scan program230sets the scan engine205to the transmissive original scanning mode. To be more precise, the scan program230turns the transmission light source220on, for instance (S1052).

Then, the scan program230obtains (decodes) coordinates of a real scanning region on the platen based on the real scanning region indicated by the setting items received from the standard driver503. To be more precise, the coordinate information of the preview information stored in the preview scan processing as shown inFIG. 13Cis read out of the memory. Then, the real scanning region to actually read the image in the real scanning is obtained based on crop frame coordinates indicated by the standard driver503while referring to this coordinate information (S1090).

FIG. 17is a diagram for explaining a method of calculating a real scanning region. InFIG. 17, “crop coordinates” indicate coordinates of a frame image n selected from the preview image in the preview image region901by using the crop frame. Meanwhile, “scan coordinates” indicate coordinates of the frame image n in the raw image800stored in the memory during the preview scan processing. Moreover, “image coordinates” indicate coordinates of the resized frame image n in the preview image830stored in the memory during the preview scan processing. The “scan coordinates” and the “image coordinates” are stored as the coordinate information in S1065.

First, the scan program230calculates scales based on the scan coordinates and the image coordinates. As for the scales, ratios between the size of the frame n in the raw image800and the size of the resized frame n in the preview image830are calculated in terms of the width and the height (ΔX, ΔY), respectively. Meanwhile, the scan program230calculates offset amounts (UL′, UT′) between the crop coordinates and the image coordinates.

Next, the scan program230calculates reference coordinates (UL″, UT″) of the region to be subjected to the real scanning in the scan coordinates based on the scales (ΔX, ΔY), the offset amounts (UL′, UT′), and the scan coordinates (SL, ST). In the meantime, the scan program230calculates the width and the height (UL″±W′−1, UT″+H″−1) of the region to be subjected to the real scanning in the scan coordinates based on information on the width and the height (W, H) in the crop coordinates and on the scales (ΔX, ΔY).

FIG. 18is a diagram showing a correspondence between the coordinates of the crop frame912in the preview image region901and reading coordinates in the raw image800. A reading region in the raw image800in the case of cropping the inside of the frame image911is calculated based on calculation formulae shown inFIG. 17. Note thatFIG. 18shows a case where the frame image does not undergo rotation processing during the generation of the preview image region901.

Back to the explanation ofFIG. 16, after the real scanning region is determined in S1090, the scan program230analyzes an image in the region corresponding to the real scanning region in the raw image stored as the preview information, thus setting a scanning condition such as light exposure time. Then, the scan program230causes the scan engine205to execute a real scanning operation under the set scanning condition (S1091).

The scan engine205performs the real scan processing on the region designated in accordance with the specified scanning condition, and stores the obtained raw image in the memory (S1092). The scan program230performs the image processing on the raw image obtained in the real scan processing in accordance with an image processing condition obtained by analyzing the image of the region corresponding to the real scanning region in the raw image stored in the preview scan processing (S1093).

Next, the scan engine205fills a differential region between the real scanning region corresponding to the crop frame912and the region actually scanned by the scan engine205with a blank image, thus generating an image corresponding to the size of the crop frame912designated by the user (S1094).

The scan program230sends the standard driver503the generated image as a real scanning result (S1044). The standard driver503forwards the scanning result received from the scan program230to the standard library501(S1038).

Here, in the case where the real scanning of the multiple regions (the crop frames912) are instructed on the UI screen907, the standard library501repeats the real scan processing on the next regions in the number equal to the number of the designated regions in S1037. Then, after obtaining the scanning results of all the selected regions, the standard library501delivers the obtained scanning results to the application500(S1021).

Thereafter, the application500continues the processing in accordance with instructions received from the user, such as storing the received scanning results in the memory (S1022) and displaying the scanning results on the display unit109(S1023). Hence, the processing is completed.

FIGS. 19A and 19Bare diagrams showing examples of the real scan processing in the case where the crop frame912is set on the preview image region901in such a way as to include multiple frame images. Although the four frame images911are arranged vertically and horizontally in the preview image region901, these images are images arranged in a line in the raw image.

FIG. 19Ashows an example in which the real scan processing is performed on all the frame images included in the crop frame912, then regions included in the crop frame912are cut out of the respective frame images and integrated together.FIG. 19Bshows a method of selecting the frame image911having the largest area from the multiple frame images911included in the crop frame912, then performing the real scan processing only on the selected frame image911, and obtaining only the region included in the crop frame912therefrom. Any of these methods may be adopted to this embodiment. Alternatively, the user may be enabled to designate which method to adopt in advance.

FIGS. 20A to 20Care diagrams showing examples of the real scan processing in a case where the crop frame912in the preview image region901runs off a readable range of the transmissive original.FIG. 20Ashows a state in which the crop frame912designated in the preview image region901is projected on the raw image800. The region corresponding to the crop frame912includes an unreadable region914outside the readable range of the transmissive original.

FIG. 20Bshows an example of performing the real scan processing on the frame image911having the largest area of the multiple frame images911included in the crop frame912. On the other hand,FIG. 20Cshows an example of performing the real scan processing on all the regions included in the readable range out of the regions corresponding to the crop frame912of the raw image800. In each case, the scan program230performs the prescribed image processing on the obtained raw image, and generates the scanning result by integrating the processed image with a blank image915in a size corresponding to the crop frame912. Any of these methods may be adopted to this embodiment. Alternatively, the user may be enabled to designate which method to adopt in advance.

FIG. 21is a diagram showing processing procedures in the case where no transmissive original is set on the image processing apparatus200at the time of performing the real scan processing. Note that procedures other than transactions between the scan program230and the scan engine205are the same as the corresponding procedures described with reference toFIG. 16and explanations thereof will be omitted here.

In the case where no transmissive original is set on the image processing apparatus200, the scan engine205responds to the scan program230that the real scan processing on the transmissive original is infeasible in reply to the inquiry from the scan program230(S1053). Upon receipt of the response, the scan program230sets the scan engine205to the reflective original scanning mode (S1054). Then, the scan program230deletes the preview information on the transmissive original remaining in the memory (S1070).

Next, the scan program230instructs the scan engine205to perform the real scanning in accordance with the setting received from the standard driver503(S1071). Upon receipt of the instruction, the scan engine205executes the reflection scanning in accordance with the designated settings (S1072). The scan program230performs the image processing suitable for the reflective original on the raw image obtained in S1072, thereby generating the real scanning result (S1073). Then, the scan program230transmits the generated real scanning result to the standard driver503(S1043).

Meanwhile,FIG. 22is a diagram showing the processing procedures in the case where the scan program230determines in S1055ofFIG. 21that the preview information is not stored. In the case where the preview information is not stored, the real scan processing on the transmissive original is not ready. Accordingly, the scan program230proceeds directly to S1071without having to switch the scanning mode or to delete the preview information, and instructs the scan engine205to perform the real scanning according to the instruction from the standard driver503.

FIG. 23is a flowchart for explaining the processing to be executed by the CPU201of the image processing apparatus200in the case of receiving a scan command from the standard driver503of the information processing apparatus100. The CPU201executes this processing in accordance with the scan program230stored in the ROM202while using the RAM203as the work area.

As the processing is started, the CPU201determines whether or not the scan command is the command for the preview scan processing or the command for the real scan processing (S2001). Then, the CPU201proceeds to S2002in the case where the command is the command for the preview scan processing, or proceeds to S2010in the case where the command is the commend for the real scan processing.

In S2002, the CPU201checks the original setting state of the image processing apparatus200. Then, the CPU201proceeds to S2003in the case where the CPU201confirms that the transmissive original is set on, or proceeds to S2020in the case where the CPU201determines that no transmissive original is set on.

In S2003, the CPU201sets the scan engine205to a transmissive original reading mode. Specifically, the CPU201turns on the transmission light source220or sets the scanning resolution.

In S2004, The CPU201executes the preview scan processing on the transmissive original under the conditions set in S2003, and stores the obtained raw image in the memory. In S2005, the scan program230selects one or more frame images911from the obtained raw image800.

In S2006, the CPU201sets the image processing conditions suitable for one of the extracted frame images911and performs the image processing in accordance with the image processing conditions thus set. This image processing on each of the frame images911is repeated until the CPU201determines in S2007that image processing on all the frame images911is completed.

As the image processing on all the frame images911is completed, the CPU201resizes the frame images911subjected to the image processing depending on the number of frames, and generates the preview image830by integrating the frame images911in S2008.

In S2009, the CPU201stores the coordinate information on the respective frame images911in the memory as the preview information together with the raw image obtained in S2004.

Meanwhile, in the case where the CPU201determines in S2001that the received scan command is the command for the real scan processing, the CPU201proceeds to S2010to check whether or not the preview information is stored in the memory. In the case where it is confirmed that the preview information is there, the CPU201checks the original setting state of the image processing apparatus200in S2011. Then, the CPU201proceeds to S2012in the case where the CPU201confirms that the transmissive original is set on, or proceeds to S2020in the case where the CPU201determines that no transmissive original is set on.

In S2012, the CPU201calculates the real scanning region based on the designated crop frame912and on the preview information stored in the memory.

In S2013, the CPU201determines whether not the real scanning region obtained in S2012is within the range readable by the scan processing on the transmissive original. If the real scanning region runs off the readable range, the CPU201corrects the real scanning region in S2014. On the other hand, in the case where the real scanning region is included in the readable range, the CPU201skips to S2015.

In S2015, the CPU201performs the real scan processing on the transmissive original. In S2016, the CPU201performs the image processing on the raw image obtained in S2015, in accordance with the image processing conditions obtained by analyzing the images in the regions corresponding to the real scanning region out of the raw images in the preview information.

In S2017, the CPU201fills the differential region between the real scanning region corresponding to the crop frame912and the region actually scanned by the scan engine205with the blank image, thus generating the image corresponding to the size of the crop frame912.

In S2108, the CPU201deletes the preview information on the transmissive original remaining in the memory.

In the case where the determination is made in S2002or S2011that the transmissive original is not set on, the CPU201proceeds to S2020and deletes the preview information on the transmissive original remaining in the memory.

In S2021, the CPU201executes the scan processing on the reflective original in accordance with the instruction received from the standard driver503.

In S2022, the CPU201performs the image processing suitable for the reflective original on the raw image obtained in S2021. Thereafter, the CPU201forwards the generated image to the information processing apparatus100in S2023. Hence, the processing is terminated.

According to the above-described embodiment, even in the case where the image processing apparatus is controlled by the standard driver that does not support the scan processing on the transmissive original, it is possible to read the transmissive original appropriately and to provide the user with the appropriate image.

As described above, the image processing apparatus200executes the processing described with reference toFIG. 7in the case where the driver used by the information processing apparatus100is the vendor driver502, and executes the processing described with reference toFIGS. 8 to 23in the case of the standard driver503. The above-mentioned switching of the processing is carried out under various conditions. For example, the processing may be switched depending on whether a communication protocol used in the case where the image processing apparatus200receives the scanning instruction is the vendor protocol or the standard protocol mentioned above. Alternatively, the scanning instruction may contain information to specify the type of the driver and the processing to be executed by the image processing apparatus200may be switched depending on this information.

In the meantime, the vendor driver502and the image processing apparatus200may perform processing similar to that described inFIGS. 9 to 23even in the case where the vendor driver502instructs the film scanning. Moreover, the vendor driver502may execute a function, which is not implemented in the standard driver503, on the scanned image received from the image processing apparatus200. Thus, the image processing apparatus200does not have to switch the processing depending on the driver used by the information processing apparatus100.

Meanwhile, depending on the types of the information processing apparatus100and the image processing apparatus200, the information processing apparatus100may have a larger processing capacity than the image processing apparatus. In this case, by switching the processing in the image processing apparatus200depending on the type of the driver, it is possible to perform the preview of the scanned images and the real scanning on the film at a higher speed in the case of using the vendor driver502.

Second Embodiment

FIG. 24is a diagram showing an information processing system used in this embodiment. The information processing system of this embodiment includes a scanner server400in addition to the information processing apparatus100and the image processing apparatus200.

In the scanner server400, a CPU401controls the entire apparatus in accordance with programs stored in a ROM402while using a RAM403as a work area. The scanner server400is connected via a network to a LAN interface111of the information processing apparatus100through a LAN interface405. Moreover, the scanner server400is connected to a USB interface204of the image processing apparatus200through a USB interface404.

FIGS. 25A and 25Bare diagrams showing configurations of control across software components in the information processing apparatus100, the scanner server400, and the image processing apparatus200.FIG. 25Ashows a state where a function of the vendor driver is customized and incorporated into the scanner server400. Meanwhile,FIG. 25Bshows a state where the scanner server400includes functions of a server control unit406, a standard library407, and a vendor driver408. In each case, the scanner server400exchanges information with a standard driver503of the information processing apparatus100by using the standard protocol and exchanges information with a scan program230of the image processing apparatus200by using the vendor protocol.

In the case of the above-described information processing system, either the scanner server400or the server control unit406implements the functions of the scan program230described with reference toFIGS. 9, 15, and 16 to 22. Specifically, in this embodiment as well, it is possible to cause the image processing apparatus to appropriately read the reflective original and to provide the user with the appropriate image even in the situation where the image processing apparatus is controlled by the standard driver that does not support the scan processing on the transmissive original.

Note that the information processing apparatus100can use the vendor driver502in the second embodiment as well. As with the first embodiment, the scanning instruction from the vendor driver502is transmitted to the image processing apparatus200without the intermediary of the scanner server400. In this case, the scan processing is executed for the vendor driver502as with the first embodiment. The scanning instruction in this case is transmitted by using the above-mentioned vendor protocol.

Other Embodiments

The present invention can also be realized by supplying a program to implement one or more functions of any of the above-described embodiments to a system or to an apparatus through a network or a storage medium, and causing one or more processors in a computer in the system or the apparatus to read the program and to execute processing. In addition, the present invention can also be realized by a circuit (such as an ASIC) that implements the aforementioned one or more functions.

This application claims the benefit of Japanese Patent Application No. 2019-216998 filed Nov. 29, 2019, which is hereby incorporated by reference wherein in its entirety.