A method of projecting an image provided as a matrix of pixels (P x,y ) with intensities (I i ) onto a projection area by means of a light source emitting a train (S) of light pulses (3 i ) with variable intensities (I i ) and intervals (Δt i ) and a MEMS mirror oscillating about a horizontal axis with a horizontal oscillation period (T h ) and about a vertical axis with a vertical oscillation period (T v ) and deflecting the emitted light pulses (3 i ), the method comprising: providing a playout matrix of a horizontal and a vertical duration (d h , d v ) for each pixel (P x,y ), and for a first half of every horizontal oscillation period (T h ), incrementing, and for a second half of every horizontal oscillation period (T h ), decrementing a horizontal pixel index (x) whenever one of the horizontal durations (d h ) indexed by the current horizontal pixel index (x) in the playout matrix has lapsed; for a first half of every vertical oscillation period (T v ), incrementing, and for a second half of every vertical oscillation period (T v ), decrementing a vertical pixel index (y) whenever one of the vertical durations (d v ) indexed by the current vertical pixel index (y) in the playout matrix has lapsed; for each light pulse (3 i ) in the train (S): retrieving the respective intensity (I i ) from the pixel matrix indexed by the current horizontal and vertical pixel indices (x, y), retrieving the respective horizontal and vertical durations (d h , d v ) from the playout matrix indexed by the current horizontal and vertical pixel indices (x, y), calculating an interval (Δt i ) from at least one of said respective horizontal and vertical durations (d h , d v ), emitting said light pulse (3 i ) with said retrieved intensity (I i ), and waiting said calculated interval (Δt i ) before emitting the next light pulse (3 i ) in the train (S). providing a playout matrix of a horizontal and a vertical duration (d h , d v ) for each pixel (P x,y ), and for a first half of every horizontal oscillation period (T h ), incrementing, and for a second half of every horizontal oscillation period (T h ), decrementing a horizontal pixel index (x) whenever one of the horizontal durations (d h ) indexed by the current horizontal pixel index (x) in the playout matrix has lapsed; for a first half of every vertical oscillation period (T v ), incrementing, and for a second half of every vertical oscillation period (T v ), decrementing a vertical pixel index (y) whenever one of the vertical durations (d v ) indexed by the current vertical pixel index (y) in the playout matrix has lapsed; for each light pulse (3 i ) in the train (S): retrieving the respective intensity (I i ) from the pixel matrix indexed by the current horizontal and vertical pixel indices (x, y), retrieving the respective horizontal and vertical durations (d h , d v ) from the playout matrix indexed by the current horizontal and vertical pixel indices (x, y), calculating an interval (Δt i ) from at least one of said respective horizontal and vertical durations (d h , d v ), emitting said light pulse (3 i ) with said retrieved intensity (I i ), and waiting said calculated interval (Δt i ) before emitting the next light pulse (3 i ) in the train (S). retrieving the respective intensity (I i ) from the pixel matrix indexed by the current horizontal and vertical pixel indices (x, y), retrieving the respective horizontal and vertical durations (d h , d v ) from the playout matrix indexed by the current horizontal and vertical pixel indices (x, y), calculating an interval (Δt i ) from at least one of said respective horizontal and vertical durations (d h , d v ), emitting said light pulse (3 i ) with said retrieved intensity (I i ), and waiting said calculated interval (Δt i ) before emitting the next light pulse (3 i ) in the train (S). <EOS>