1. A machine-readable storage device encoded with a computer program, the computer program comprising instructions that when executed by a programmable processor of a computer cause the computer to perform operations comprising: receiving in the computer a source bitmap image, a destination bitmap image, a source image feature outline defined for the source bitmap image, and a destination image feature outline defined for the destination bitmap image; interpolating the source image feature outline as a source B-spline curve and the destination image feature outline as a destination B-spline curve, wherein the source B-spline curve and destination B-spline curve each has multiple knots; calculating a B-spline surface that interpolates the source bitmap image bounded by the source image feature outline, wherein the B-spline surface has multiple surface control points; calculating a mapping between the source image feature outline and the destination image feature outline, wherein the mapping defines a respective displacement value for each one of one or more anchor control points, each anchor control point identified as a surface control point of the B-spline surface that is closest to a respective knot of the source B-spline curve, and not all surface control points are anchor control points; displacing each anchor control point by the respective displacement value defined in the mapping; and displacing the surface control points of the B-spline surface that are not anchor control points, without further displacing the anchor control points and without changing any color of any surface control point, to generate a displaced B-spline surface, wherein the displaced B-spline surface is C 2 continuous across an entirety of the displaced B-spline surface; wherein the interpolating is performed by one or more processors of the computer.