This invention provides a method for generating a dither matrix includes: setting an evaluation function for calculating an evaluation value of the dither matrix; providing a dither matrix as an initial state which stores in respective elements each of a plurality of threshold values for deciding presence or absence of dot formation for each pixel according to an input tone value; fixing an element for storing a threshold value in an increasing order from a smaller threshold value while transposing at least one of the plurality of threshold values stored in a part of the elements and a threshold value stored in another part of the elements; and outputting a dither matrix in which elements for storing are fixed with regard to at least part of the plurality of threshold values. The step of fixing an element for storing a threshold value includes: transposing mutually part of the threshold values whose elements for storing have not been fixed, among the plurality of threshold values; calculating an evaluation value of the dither matrix in which the threshold values have been transposed, using the evaluation function; fixing an element for storing a smallest evaluation threshold value among the threshold values whose elements for storing have not been fixed, according to a compliance of the evaluation value to a predetermined criterion; and repeating the steps from the transposing step to the fixing step until elements for storing at least part of the plurality of threshold values are fixed.