This paper presents a new block-coding algorithm for grey-scale images based on a fractal approximation. Image blocks are approximated by a linear combination of a set of almost orthogonal basis blocks made up of, (i) a set of simple image-independent blocks, and (ii) a set of image-dependent blocks generated from transformed blocks of bigger size in the same image. To find the approximation for each block, the block is projected onto the space spanned by the set of basis blocks. For each block, the biggest coefficients plus the index of the corresponding basis blocks and the number of basis blocks used make the code. The number of basis vectors used for coding each block is the number of basis blocks needed to approximate the block within a given error limit. We also present the results of a study on the effect of variations on Jacquin's fractal-based image coding algorithm.