In a printer, when difference in ejection characteristic among nozzles appears as density non-uniformity and the way of letting the density non-uniformity appear is different depending upon kind of image, proper density correction is performed. Specifically, the kind of image to be printed is judged, and when the kind of image is a halftone image according to the judgment, a density correction table corresponding to the halftone image is selected and used to perform the density correction. Also when the kind of image is judged to be a solid image (without a portion of the halftone image), a proper table is selected similarly and used to perform the density correction.