An image reading apparatus in which a plurality of image reading units for reading a continuously conveyed document are arranged in a zigzag manner, wherein the image reading units read reflection light for each color on the document by photoelectric conversion elements arranged in line while light sources having a plurality of colors are successively turned on and off, to obtain digital data, and the digital data associated with the respective image reading units are combined to generate one-line image data, characterised in that the digital data each including color data indicating one of the colors of the light sources used to obtain the digital data and read period data indicating one of capture periods of the digital data, the image reading apparatus comprising: first image detecting means for detecting, from the digital data obtained by reading by the image reading units, the digital data having the color data indicating a predetermined color and the read period data indicating a predetermined capture period; a memory including a plurality of addresses and corresponding storage regions, for storing, for each of the addresses, digital data obtained by each of the image reading units, which digital data is determined to include the same color data and the same read period data based on the results of detection by the first image detecting means for the respective image reading units; and image control means for combining the digital data associated with the respective image reading units which are stored in the storage regions corresponding to the addresses from the memory, to generate the one-line image data; wherein the first image detecting means performs detection at read timings of the image reading units and adjusts a write timing of the digital data into the memory for each of the image reading units to a timing based on a read timing when the digital data having the predetermined color data and the predetermined read period data is detected for that image reading unit; and wherein an offset value is determined in advance for each of the image reading units based on a read line width of the image reading apparatus relative to an interval in a conveying direction between that image reading unit and a reference point, the image reading units being arranged in the zigzag manner, and an address for starting storage of the digital data into the memory for each image reading unit is determined based on the offset value for that image reading unit. first image detecting means for detecting, from the digital data obtained by reading by the image reading units, the digital data having the color data indicating a predetermined color and the read period data indicating a predetermined capture period; a memory including a plurality of addresses and corresponding storage regions, for storing, for each of the addresses, digital data obtained by each of the image reading units, which digital data is determined to include the same color data and the same read period data based on the results of detection by the first image detecting means for the respective image reading units; and image control means for combining the digital data associated with the respective image reading units which are stored in the storage regions corresponding to the addresses from the memory, to generate the one-line image data; wherein the first image detecting means performs detection at read timings of the image reading units and adjusts a write timing of the digital data into the memory for each of the image reading units to a timing based on a read timing when the digital data having the predetermined color data and the predetermined read period data is detected for that image reading unit; and wherein an offset value is determined in advance for each of the image reading units based on a read line width of the image reading apparatus relative to an interval in a conveying direction between that image reading unit and a reference point, the image reading units being arranged in the zigzag manner, and an address for starting storage of the digital data into the memory for each image reading unit is determined based on the offset value for that image reading unit.