An image forming apparatus comprising; a light source that outputs a plurality of laser beams; a photosensitive element (104a, 106a, 108a, 110a); a splitting unit that splits each of the laser beams into a first laser beam that is used for light intensity control and a second laser beam that is used to scan the photosensitive element (104a, 106a, 108a, 110a); a light-intensity-signal output unit that outputs for each of the first laser beams a corresponding light intensity signal that is indicative of the light intensity thereof; and a controls unit that adjusts the light intensity of each of the laser beams to a target light intensity by referring to the light intensity signal, wherein the control unit includes a common-control-value calculating unit that calculates a common control value (Isw) that is used for light intensity control of every laser beam; a correction-value calculating unit that calculates a correction value (DEV(i)) for each of the laser beams, wherein the correction value (DEV(i)) is used to correct the common control value (Isw); and a threshold calculating unit that calculates thresholds (Ith(i)) of each of the laser beams in accordance with beam-based threshold-current setting values TH(i) for each of the laser beams by feedback control of the beam-based threshold-current setting values based on the light intensity signals, wherein a threshold (Ith(i)) corresponds to a value of current at which oscillation of the corresponding laser beam starts, the correction-value calculating unit calculates the correction value (DEV(i)) so that, when the laser beam is driven by a first control value (SHD1*DFV(i)*Isw+Ith(i)), the light intensity of the laser beam is equal to the target light intensity, wherein the first control value (SHD1*DEV(i)*Isw+Ith(i)) is a value calculated by correcting the common control value (Isw) using the correction value (DEV(i)) to obtain a corrected control value (SHD1*DEV(i)*Isw) and adding the threshold (Ith(i)) to the corrected control value (SHD1*DEV(i)*Isw), and the threshold calculating unit calculates the threshold (Ith(i)) so that, when the laser beam is driven by a second control value (SHD2*DEV(i)*Isw+Ith(i)), the light intensity of the laser beam is equal to the target light intensity multiplied by a predetermined factor (SHD2/SHD1), wherein the second control value (SHD2-*DEV(i)*Isw+Ith(i)) is a value calculated by correcting the common control value (Isw) using the correction value (DEV(i)) to obtain the corrected control value (SHD1*DEV(i)*Isw), multiplying the corrected control value (SHD1*DEV(i)*Isw) by the predetermined factor (SHD2/SHD1) to obtain a multiplied control value (SHD2*1)EV(i)*Isw), and adding the threshold (Ith(i)) to the multiplied control value (SHD2*DEV(i)*Isw). a common-control-value calculating unit that calculates a common control value (Isw) that is used for light intensity control of every laser beam; a correction-value calculating unit that calculates a correction value (DEV(i)) for each of the laser beams, wherein the correction value (DEV(i)) is used to correct the common control value (Isw); and a threshold calculating unit that calculates thresholds (Ith(i)) of each of the laser beams in accordance with beam-based threshold-current setting values TH(i) for each of the laser beams by feedback control of the beam-based threshold-current setting values based on the light intensity signals,