Image recording apparatus

An image recording apparatus includes an inputting unit, a half-tone processing unit, a printing unit, a correction-value storing unit, and a dot-position correcting unit. The inputting unit inputs image information on an image. The half-tone processing unit performs, based on the image information, a half-tone process for setting a plurality of dots to be printed on a recording medium. The printing unit prints the plurality of dots on the recording medium. The correction-value storing unit stores a set of correction values for correcting positions of the plurality of dots on the recording medium. The set of correction values includes at least one correction value that is provided for each of the positions of the plurality of dots. The dot-position correcting unit corrects the positions of the plurality of dots based on the set of correction values, thereby obtaining output positions for printing the plurality of dots on the recording medium.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority from Japanese Patent Application No. 2006-049521 filed Feb. 27, 2006. The entire content of the priority application is incorporated herein by reference.

TECHNICAL FIELD

The present invention relates to an image recording apparatus capable of preventing color shift in performing printing by superimposing a plurality of colors on a recording medium and an image processing program for processing images.

BACKGROUND

In performing color printing with image recording apparatuses such as a color electrophotographic printer (laser printer), desired colors are reproduced by superimposing a plurality of colors such as CMYK (Cyan, Magenta, Yellow, and Black). However, there occur various unevenness and allocation errors in a mechanism conveying a recording medium, thereby causing color shift in which the printing positions of a plurality of superimposed colors are shifted. Japanese Patent Application Publication No. 2001-337504 discloses a method of correcting color shift for each color for preventing such a color shift.

SUMMARY

In conventional image recording apparatuses and image processing programs, a color shift can be corrected for each color or for each line, however, shift of each dot at the printing positions of the recording medium cannot be corrected individually. Accordingly, there is a problem that the printed colors are not even on the printing surface.

In view of the foregoing, it is an object of the invention to provide an image recording apparatus and an image processing program that can easily correct a shift of each dot at printing positions on a recording medium.

In order to attain the above and other objects, the invention provides an image recording apparatus. The image recording apparatus includes an inputting unit, a half-tone processing unit, a printing unit, a correction-value storing unit, and a dot-position correcting unit. The inputting unit inputs image information on an image. The half-tone processing unit performs, based on the image information, a half-tone process for setting a plurality of dots to be printed on a recording medium. The printing unit prints the plurality of dots on the recording medium. The correction-value storing unit stores a set of correction values for correcting positions of the plurality of dots on the recording medium. The set of correction values includes at least one correction value that is provided for each of the positions of the plurality of dots. The dot-position correcting unit corrects the positions of the plurality of dots based on the set of correction values, thereby obtaining output positions for printing the plurality of dots on the recording medium.

According to another aspect, the invention also provides a storage medium storing a set of program instructions executable on an image processing apparatus. The set of program instructions includes: inputting image information on an image; performing, based on the image information, a half-tone process for setting a plurality of dots to be printed on a recording medium; and correcting positions of the plurality of dots on the recording medium based on a set of correction values stored in a correction-value storing unit, the set of correction values including at least one correction value that is provided for each of the positions of the plurality of dots, thereby obtaining output positions for printing the plurality of dots on the recording medium.

DETAILED DESCRIPTION

An image recording apparatus and image processing program according to a first embodiment of the invention will be described while referring toFIGS. 1 through 5.

FIG. 1is a vertical cross-sectional view showing an overall configuration of a color electrophotographic printer1according to the first embodiment. As shown inFIG. 1, the color electrophotographic printer1is a transverse tandem-type printer in which four image forming units20are arranged in series in a horizontal direction. The printer1includes a paper feed section9, an image forming section4, a paper discharging section6, and a controller90. The paper feed section9feeds sheets of recording paper3to a main casing5. The image forming section4forms images on the fed recording paper3. The paper discharging section6discharges the recording paper3on which images have been formed. The controller90controls the color electrophotographic printer1.

The paper feed section9includes a paper feed tray12, a paper feed roller83and conveying rollers14aand14b. The paper feed tray12is detachably mounted on the main casing5from the front side (right side inFIG. 1) in the bottom of the main casing5. The paper feed roller83is provided at one end (at the front side) of the paper feed tray12. The conveying rollers14aand14bare provided on the downstream side in the conveying direction of the recording paper3with respect to the paper feed roller83at the front side of the paper feed roller83.

A plurality of sheets of the recording paper3are stacked in the paper feed tray12. The uppermost sheet of the recording paper3is fed towards the conveying rollers14aand14bby rotations of the paper feed roller83and is conveyed sequentially between a conveying belt68and each of photosensitive drums62.

In the middle portion of the main casing5, the image forming section4includes four image forming units20Y,20M,20C, and20K for forming images, a transfer section17, and a fixing section8. The transfer section17transfers images formed by each of the image forming units20to the recording paper3. The fixing section8fixes the images transferred to the recording paper3by heating and pressurizing the same. The above-described subscripts Y, M, C, and K represent the colors of Yellow (Y), Magenta (M), Cyan (C), and Black (K), respectively.

Each of the image forming units20has a photosensitive drum62as an image bearing member, a charger31, an exposure unit41, and developing units51Y,51M,51C and51K. The charger31is provided adjacent to the photosensitive drum62for charging the same. The exposure unit41forms electrostatic latent images on the photosensitive drum62. The developing units51Y,51M,51C, and51K form toner images by providing toner as a developing agent to the photosensitive drum62, using a development bias applied between the photosensitive drum62and developing units51Y,51M,51C, and51K.

The charger31is, for example, a Scorotron charger generating corona discharge from a discharging wire made of tungsten and evenly charging the surface of the photosensitive drum62in a positive polarity. The exposure unit41includes an LED array emitting light for forming electrostatic latent images on the surface of the photosensitive drum62. In this exposure unit41, light emitted from the LED array is irradiated on the photosensitive drum62, and electrostatic latent images are formed on the surface of the photosensitive drum62. The exposure unit41need not be an LED array, but may be an exposure unit that emits laser light.

The developing unit51is provided with a hopper56, a supply roller32, and a developing roller52in a developing casing55. The hopper56is formed as inner space of the developing casing55, and the toners of Yellow, Magenta, Cyan and Black are contained therein for each of the image forming units20. That is, the above-described four image forming units20include an image forming unit20Y in which a toner of Yellow is contained in the hopper56, an image forming unit20M in which a toner of Magenta is contained in the hopper56, an image forming unit20C in which a toner of Cyan is contained in the hopper56, and an image forming unit20K in which a toner of Black is contained in the hopper56. Four image forming units20only have different colors of toners and have the same configuration.

The supply roller32is provided below the hopper56. A roller portion made of a conductive sponge member is covered on a metallic roller shaft of the supply roller32. The supply roller32is rotatably supported so as to rotate in a direction opposite to the developing roller52in a nip portion in contact with the developing roller52.

At a side of the supply roller32, the developing roller52is rotatably provided in a position in contact with the supply roller32. A roller portion made of an elastic member such as a conductive rubber material is covered on a metallic roller shaft of the developing roller52. A developing bias voltage is applied from a power source110(seeFIG. 2) to the developing roller52.

The transfer section17is provided so as to be opposed to the photosensitive drum62in the main casing5and has a conveying belt driving roller63, a conveying belt follow roller64, a conveying belt68which is an endless belt, and a transfer roller61. The conveying belt follow roller64is provided on the upstream side of the photosensitive drum62of the image forming unit of Yellow20Y located on the most upstream side with respect to the conveying direction of the recording paper3as well as at the upper front side of the paper feed roller83.

The conveying belt driving roller63is provided on the downstream side of the photosensitive drum62of the image forming unit of Black20K located on the most downstream side with respect to the conveying direction of the recording paper3as well as on the upstream side of the fixing section8. The conveying belt68is wound around between the conveying belt driving roller63and the conveying belt follow roller64and is provided so as the outer surface thereof to be brought into contact with all the photosensitive drums62of the image forming units20. The conveying belt68is circularly moved in a counter-clockwise direction between the conveying belt driving roller63and the conveying belt follow roller64by being driven by the conveying belt driving roller63.

The transfer roller61is provided so as to be opposed to the photosensitive drum62of each of the image forming units20with interposing the conveying belt68therebetween inside the loop of the conveying belt68. A roller portion made of an elastic member such as a conductive rubber material is covered on a metallic roller shaft. In a transfer operation, a predetermined voltage is applied between the transfer roller61and the photosensitive drum62in a direction in which toner images borne on the photosensitive drum62are transferred to the recording paper3.

The fixing section8is provided on the downstream side of the image forming unit20and the transfer section17, and has a heating roller81and a pressure roller82. The heating roller81is made of a metallic pipe, on the surface of which release layers are formed. A halogen lamp is provided in the heating roller81along the axial direction thereof, and the surface of the heating roller81is heated to a fixing temperature by the halogen lamp. The pressure roller82is provided so as to pressurize the heating roller81.

The paper discharging section6is provided on the downstream side of the fixing section8in the upper portion of the main casing5, and includes a pair of paper discharging rollers11and a paper discharging tray10. The pair of paper discharging rollers11discharges the recording paper3on which images have been fixed to the paper discharging tray10. The paper discharging tray10is provided on the downstream side of the paper discharging roller11for accumulating the sheets of the recording paper3having completed the image forming process.

The density sensor80is provided obliquely rearward below the conveying belt driving roller63so as to oppose the outer surface of the conveying belt68. The density sensor80is configured to detect patches formed on the conveying belt68and the like. A toner collecting device107is provided obliquely forward below the conveying belt driving roller63, so that a toner collecting roller105of the toner collecting device107is in contact with the outer surface of the conveying belt68. The toner collecting device107is for collecting toner (patches and the like described above) adhered to the conveying belt68.

An electric configuration of the color electrophotographic printer1and a personal computer120(hereinafter, referred to as PC) providing image information to the color electrophotographic printer1will be described with reference toFIG. 2. As shown inFIG. 2, the color electrophotographic printer1is provided with a controller90for controlling each component of the apparatus comprehensively. The printer1is configured to send control signals to each of the image forming units20, the is paper supply roller83, the conveying rollers14aand14b, the conveying belt driving roller63, the transfer roller61, the heating roller81, the pressure roller82, the paper discharging roller11, and the power source110via a driver26which is part of the controller90.

The controller90includes a CPU22, a ROM23, a RAM24, an I/O25, a driver26, an external media slot27, and an interface (hereinafter referred to as I/F)28. The CPU22is a microprocessor executing various programs stored in the ROM23. RAM24is a memory having a work area in which variables are temporarily stored when the CPU22executes the programs. The ROM23is a read-only memory storing various programs executed by the CPU22as well as constants and tables to be referred to in executing the programs.

The ROM23includes a printing control program memory23afor storing a printing control program (image processing program) as a control program and a color shift correction table memory23bfor storing a color shift correction table. The printing control program is a program for converting color image information inputted from a medium mounted in the external media slot27into printing information for performing printing by the color electrophotografic printer1.

The inputted color image information has values of RGB or the like. In order to perform printing in an optimal condition in the color electrophotographic printer1, a color conversion processing, a halftone processing, and a color shift correction processing are executed. In the color conversion processing, the above-described RGB values are converted into CMYK values (printing information) by using a lookup table so as to match ink used for printing, the type of printing paper, and the resolution of printing. In the halftone processing, the information converted by the color conversion processing is further converted to binary values. In the color shift correction processing, the positions of dots set by the halftone processing are corrected so as to prevent a color shift.

The color shift correction table is a table to be referred to in the color shift correction processing and stores correction values in X- and Y-directions in accordance with the coordinate positions on the printing surface.

The external media slot27can detachably mount external media storing image information (image data) obtained by a digital camera or the like, and inputs image information (RGB values) directly from a mounted external medium.

The interface28is an interface for communicating with an external device by USB standard or the like, and can input image information from the PC120or a digital camera.

The PC120includes a CPU121, a ROM122, a RAM123, a hard disk124, an interface125, an operating device126, and a display device127. The CPU121is a microprocessor executing various programs stored in the ROM122and the hard disk124. RAM123is a memory having a work area in which the programs stored in the hard disk124is stored or in which variables are temporarily stored when the CPU121executes the programs.

The hard disk124includes a printer driver memory124afor storing a printer driver, a color shift correction table memory124bfor storing a color shift correction table, and an application memory124cfor storing various application software.

The printer driver stored in the printer driver memory124ais program supplied by a CD-ROM or the like attached to the color electrophotographic printer1. This printer driver creates printing data by converting image data of RGB into printing data of CMYK as well as data for suitably controlling the color electrophotographic printer1. The printer driver is installed into the hard disk124from the CD-ROM mounted in a CD-ROM drive (not shown) provided in the PC120.

The color shift correction table stored in the color shift correction table memory124bis supplied together with the printer driver by the CD-ROM, and is referred to in executing the color shift correction processing included in the printer driver. This color shift correction table will be described later with reference toFIG. 4.

The various application software stored in the application memory124cinclude image processing software for editing pictures taken by a digital camera, word processing software for creating documents and tables, and the like. The application software creates image information.

In printing the image information, the created image information is converted into the printing information by the printer driver and is outputted to the color electrophotographic printer1.

The interface125is an interface by a USB standard or the like for communicating with an external device via a cable. The interface125can input image information obtained by a digital camera or the like, or can output the printing information to the color electrophotographic printer1.

The operating device126includes a keyboard and a mouse for making the various settings of the PC120and for inputting characters. The display device127is a liquid crystal display, for example. The display device127displays setting screen on which various values are set by a user when the CPU121executes a program and displays images formed based on the set values.

A method of correcting color shift will be described with reference toFIGS. 3A through 4.FIGS. 3A and 3Bare explanatory drawings showing states in which color shift is caused.FIG. 4shows a color shift correction table to be referred to in a color shift processing for correcting color shift.

FIG. 3Ashows a case in which color shift has occurred in a horizontal direction (X-direction) in comparison to a normal case. The normal case is shown on the left side ofFIG. 3A, and the case of color shift is shown on the right side.FIG. 3Aschematically shows that an image is formed by superimposing pixels of one color (for example, magenta) represented by five black dots on pixels of another color (for example, cyan) represented by squares. In the normal case, superimposed pixels are positioned correctly. That is, square pixels and black dot pixels are superimposed in aligned positions (correct positions), allowing three vertical rows to be aligned. Also, pixels allocated in separate positions are located at correct positions at which the square pixels and black dot pixels in different rows do not contact or overlap with each other.

In contrast, in case of color shift, black dots are shifted slightly to the right side on the printing surface (in X direction) from the correct positions. That is, squares and black dots in the three vertical rows are shifted from each other. Also, pixels allocated so as not to overlap with each other are located in contact with other pixels due to shifted positions.

FIG. 3Bshows a case in which color shift has occurred in a vertical direction (Y-direction) in comparison to the normal case. The normal case is shown on the upper side ofFIG. 3B, and the case of color shift is shown on the lower side thereof. In the normal case, superimposed printed pixels are positioned correctly. That is, three horizontal rows in which square pixels and black dot pixels are superimposed in aligned positions (correct positions). Also, pixels allocated in separate positions are located at correct positions at which the square pixels and black dot pixels in different rows do not contact or overlap with each other.

In contrast, in case of color shift, black dots are shifted slightly to the upper side on the printing surface (in Y direction) from the correct positions. That is, squares and black dots in the three horizontal rows are shifted from each other. Also, pixels allocated so as not to overlap with each other are located in contact with other pixels due to shifted positions.

Accordingly, in the present embodiment, positions on the printing surface in which the color shift occurs are detected in advance and stored in a memory. In the positions in which the color shift occurs, the memory is referred to for correcting the color shift, thereby enabling pixels to be located in correct positions.

More specifically, when detecting the color shift, each of the four image forming units20Y,20M,20C, and20K forms, on the conveying belt68, a plurality of lines (patches) which extends in the main scanning direction. Then, the density sensor80detects the plurality of lines (patches). This operation is performed for each of CMYK colors. The controller90compares differences in detection timing between the CMYK colors, thereby detecting the color shift. Alternatively, if the color electrophotographic printer1has four density sensors for each of CMYK colors, detection can be performed at the same time.

Note thatFIGS. 3A and 3Bshow cases where color shift has occurred by less than one dot (approximately half a dot). In other words, the black dots and the square marks inFIGS. 3A and 3Bare shifted by a distance less than one dot. In such a case, for example, the controller90determines that either the color shift has occurred by one dot or no color shift has occurred, depending on the distance of shift.

FIG. 4shows a part of a color shift correction table (a set of correction values) for performing the correction for one of CMYK colors, In other words, the color correction table (the set of correction values) is stored for each of CMYK colors. The color shift correction table is stored in the color shift correction table memory23bin the ROM23. The color shift correction table stores offset values in dots for correcting shifts in X- and Y-directions at each (X, Y) position on the printing paper3. Addresses in the table are in a one-to-one correspondence with (X, Y) coordinate positions on the printing paper3.

InFIG. 4, the offset values are equal to zero in both X- and Y directions at addresses0001to0004. At addresses00500to00502, the offset values in X-direction are minus one (−1) such that the pixels are shifted by one dot in the minus direction (to the left), and the offset values in Y-direction are equal to zero. At addresses01500to01502, the offset values in X direction are minus one (−1) such that the pixels are shifted by one dot in the minus direction, and the offset values in Y-direction are minus two (−2) such that the pixels are shifted by two dots in the minus direction.

Next, print processing executed in the color electrophotographic printer1(serving as an image processing apparatus) will be described with reference to a flowchart ofFIG. 5. This print processing is a processing executed when a user operates an operating device (not shown) for starting a printing operation based on image information stored in an external medium mounted in the external media slot27.

In S1, the CPU22of the color electrophotographic printer1converts image information (RGB) stored in an external medium into printing information (CMYK) by a color conversion program stored in the color conversion program memory23ain the ROM23. In S2, the CPU22executes a halftone processing in which density values (256 tones represented in eight-bit) are converted into binary values (0 or 1). In this halftone processing, well-known dither method or error diffusion method is used, for example.

In S3, the CPU22determines whether the type of the image information stored in the external medium is a natural picture. The CPU22makes this determination based on an extension of a filename of the image information. For example, if the extension is “jpg”, the CPU22determines that the image information is a natural picture of JPEG format taken by a digital camera or the like. If the extension is “doc”, the CPU22determines that the image information is a document created by a word processor.

If the type of the image information is a natural picture (S3: Yes), in S12the CPU22executes the print processing without any corrections because a picture in a better quality can be printed without color shift correction, If the type of the image information is not a natural picture (S3: No), the positions of dots are corrected with reference to the color shift correction table. In S4, the CPU22determines whether the X-offset stored in the color shift correction table for the position of a dot to be corrected is equal to zero. If the X-offset is not equal to zero (S4: No), in S5the CPU22changes the position of the dot in X-direction by a distance stored in the correction table, and temporarily stores the changed position in the work area of the RAM22. If the X-offset is equal to zero (S4: Yes), or if the processing in S5has been completed, in S6the CPU22determines whether the Y-offset for the dot in the color correction table is equal to zero. If the Y-offset is not equal to zero (S6: No), in S7the CPU22changes the position of the dot in Y-direction by a distance stored in the correction table, and temporarily stores the changed position in the work area of the RAM22.

If the Y-offset is equal to zero (S6: Yes), or if the processing in S7has been completed, in S8the CPU22determines whether a dot (a dot in the same color) already exists in the (X, Y) position stored in the work area of the RAM (S8). If no dot exists in the changed position (S8: No), in S9the CPU22allocates a dot in the changed position. If a dot already exists in the changed position (S8: Yes), in S10the CPU22allocates the dot in the original position. In S11, the CPU22determines whether this series of processing has been executed for all pixels. If there are yet any unprocessed pixels (S11: No), the processing returns to S4. If all pixels have already been processed, in S12the CPU22executes a printing operation based on the processed image information. Note that the processing in S4to S11is executed for each of CMYK colors. After the processing for all the colors have been completed, the printing operation in S12is executed.

As described above, in the color electrophotographic printer1of the first embodiment, the color shift correction table memory23bof the ROM23stores values for correcting the coordinate positions on the printing surface at which pixels are allocated. The position of each of the pixels to be printed is corrected with reference to the color shift correction table. At this time, the CPU22determines whether the image information is a natural picture based on the extension of the filename of the inputted image information. If the image information is a natural picture such as a photograph, the color electrophotographic printer1is controlled so as not to perform any correction. This is because, if the image is a natural picture, a visible color shift is not likely to occur and printing in high quality can be performed. If the image is a line drawing or a character, the printing positions of pixels are corrected, thereby performing printing in high quality.

An image recording apparatus and image processing program according to a second embodiment of the invention will be described while referring toFIGS. 6 through 9, wherein like parts and components are designated by the same reference numerals to avoid duplicating description.

According to the above-described first embodiment, the correction processing is executed by the color electrophotographic printer1. However, according to the second embodiment, the correction processing is executed by a printer driver installed in the hard disk124of the PC120(serving as an image processing apparatus). The color shift correction table stored in the color shift correction table memory124bof the hard disk124is referred to in the color shift correction processing executed by the printer driver.

In this processing executed by the printer driver, images such as pictures and characters are formed by application software installed in the PC120. The application software provides a command corresponding to the type of an image to the printer program together with image data. Then, determination is made according to the type of the command whether the image is a natural picture.

Accordingly, even when natural pictures, characters, and lines are mixed on one sheet of the recording paper, an optimal processing can be executed for each image.

FIG. 6is a view showing an image which is created by a graphic tool. The image contains a plurality of image parts including a graphic drawing part such as a photograph, a line drawing part such as a figure, and a character drawing part including characters (texts).

In this image, the graphic drawing part is created by a graphic drawing command (CDC), the line drawing and the ruled lines of the table (the line drawing part) are created by a line drawing command (LDC), and the character drawing part is created by a character drawing command (CDC).

FIGS. 7 through 9are flowcharts showing a print processing executed by a printer driver. In S21, the CPU121of the PC120inputs a graphic drawing command, a line drawing command, and a character drawing command from application software. In S22, the CPU121executes a drawing processing according to these drawing commands. This drawing processing will be described later with reference toFIG. 8. In S23the CPU121converts the colors of RGB into the colors of CMYK, and in S24executes a halftone processing. The color conversion processing and the halftone processing are similar to those in the first embodiment.

In S25the CPU121executes a color shift correction processing, and in S26outputs the image information to the color electrophotographic printer1. The color shift correction processing will be described later with reference toFIG. 9.

The drawing processing will be described with reference toFIG. 8. In the drawing processing, in S31the CPU121checks the drawing command inputted from application software. In S32, the CPU121determines whether the drawing command is a line drawing command. If the drawing command is a line drawing command (S32: Yes), in S35the CPU121registers (stores) the positions of the pixels drawn by the drawing command as the color shift correction positions in a predetermined work area of the RAM123, and in S36executes the drawing processing. If the drawing command is not a line drawing command (S32: No), in S33the CPU121determines whether the drawing command is a character drawing command. If the drawing command is a character drawing command (S33: Yes), in S35the CPU121registers the positions of the pixels drawn by the drawing command as the color shift correction positions in the predetermined work area of the RAM123, and in S36executes the drawing processing.

If the drawing command is not a character drawing command (S33: No), in S34the CPU121determines whether the drawing command is a graphic drawing command. If the drawing command is a graphic drawing command (S34: Yes), in S36the CPU121executes the drawing processing without registering the positions of the pixels in the RAM123because the color shift correction for the positions of the pixels need not be performed.

The drawing processing in S36is processing for creating image data for executing printing based on the drawing command and for storing the image data in a predetermined area of the hard disk124. If the drawing processing has been completed, or if the drawing command is not a graphic drawing command (S34: No), in S37the CPU121determines whether the processing for all the drawing commands inputted from application software have been completed. If there is yet any unprocessed drawing command (S37: No), the processing returns to S31. If all the drawing commands have already been processed (S37: Yes), the drawing processing ends.

The color shift correction processing will be described with reference toFIG. 9. In the color shift correction processing, the processing is executed for each pixel. In S41, the CPU121determines whether the position of the pixel to be processed is registered as the color shift correction position in the predetermined work area of the RAM123. If the pixel position is registered as the color shift correction position (S41: Yes), the processing in S42to S48are executed, however, since these processing are similar to the processing in S4to S30inFIG. 5, the detailed description thereof will be omitted. If the pixel position is not registered as the color shift correction position in S41(S41: No), or if the processing in S47and S48have been completed, in S49the CPU121determines whether the processing for all the pixels constituting the image have been completed. If there are yet any unprocessed pixels (S49: No), the processing returns to S41. If all the pixels have already been processed (S49: Yes), the color shift correction processing ends.

As described above, in the print processing executed by the printer driver according to the second embodiment, the type of an image is determined according to the drawing commands created by application software. If the image is not a natural picture, color shift correction processing is executed. Thus, when one printing surface includes a line drawing, characters, and a graphic, the color shift correction processing is performed for a line drawing or characters, and the color shift correction processing is not performed for a natural picture such as a graphic.

In the image recording apparatus and image processing program according to the above-described first and second embodiments, color shift can be prevented at a higher precision and printing can be performed in higher quality compared with a case in which color shift is corrected for each color or for each line in vertical and horizontal direction (the main scanning direction and sub-scanning direction).

For example, in the above-described embodiments, a color electrophotograhic printer1is employed as an apparatus for performing printing, however, an inkjet printer, a copying machine provided with a scanner for reading images, or a facsimile machine for receiving image information via a communication line and for printing an image may also be employed.

Further, the halftone processing in the above-described embodiments sets binary values for determining whether dots are formed. However, large-sized dots, middle-sized dots, and small-sized dots may be set in forming dots.

Further, in the above-described embodiments, if a dot already exists in the changed position, in S10(FIG. 5) or in S48(FIG. 9) the CPU22or the CPU121allocates the dot in the original position. However, if the dot is changed by two dots and then a dot already exists in that changed position, the CPU22or the CPU121may allocate the dot at a position which is returned by one dot from the changed position (i.e., the position between the original position and the changed position).