In this paper we propose a novel image interpolation algorithm which preserves edges and keeps a natural texture of interpolated images. The algorithm is based on an idea that only pixels that belong to the same side of an edge should be used in interpolation of pixels that belong to an edge. Beside similarity-based separation of known interpolation pixels a gravity-like interpolation coefficient set is also introduced in order to support different number of interpolation pixels and their location in two dimensional plane. The algorithm also applies arbitrary scaling factors, thus offering a broader scope of applications. Use of a local set of interpolating points makes the proposed algorithm suitable for applications on resource-limited platforms. The edge performance is demonstrated for structured geometric forms, while a general interpolated image quality is evaluated using objective measures and subjective comparisons. A comparison with some relevant interpolation algorithms shows the desirable tradeoff between image quality (sharpness and texture) and requested computing power (run-time).