1. A method comprising: by one or more computing devices, receiving an image that corresponds to a first color space; and by one or more computing devices, creating, based on an approximation function, a color profile for transforming the image from the first color space to a second color space, wherein: the approximation function is determined by a polyline; the polyline comprises a number of line segments; each of the line segments has one or more control points; the number of line segments is determined by a binary search algorithm; the control points for the line segments are determined by a simulated annealing algorithm; and the polyline as determined by the binary search algorithm and the simulated annealing algorithm is separated from an ideal function curve for transforming the image by an error value that is within a pre-determined threshold.