Image hiding is a technique that embeds the important images into a cover image such that the important images are imperceptible and can be securely transmitted to the receiver. In such research, the common goals are to enlarge the embedding capacity as much as possible since the visual quality of the cover image is degraded slightly and to keep high visual quality of the important images when they are extracted from the stego image. In this paper, we propose an image-hiding method based on the two-codebook combination, the three-phase block matching procedure, and the modulus substitution. The proposed method can achieve these benefits: (1) multiple, relatively large important images can be embedded into a relatively small cover image; (2) the quality of the stego image after embedding the secret data is not distorted significantly; (3) the important images have an acceptable visual quality after they are extracted. The experimental results also show that the proposed method is more flexible than previous methods.