In this paper, we propose a novel blind image watermarking algorithm that is resistant to various attacks, including geometrical distortions. To embed the watermark, we first enlarge the image with a small scale to be fit for the next image blocking process. Secondly, the enlarged image is blocked into macroblocks and subblocks with adaptively determined sizes. Third, we scramble the watermark and embed it repeatedly into the coefficients that are obtained from the subblock-based SVD followed by macroblock-based DCT. Then, the watermarked image can be obtained by means of corresponding inverse transformations. The watermark extraction process is similar as the embedding one. Compared with others' works, the small-scale image enlargement, the adaptive image blocking and the watermark scrambling we present in this SVD-DCT based method play an important role in increasing the robustness to resist geometrical distortions. Experimental results demonstrate that our method can not only resist common image processing attacks, but also has good performance when the image has been scaled or cropped.