1. A method, comprising: performing an image editing operation by one or more computing devices, the image editing operation comprising: obtaining an input image; decomposing the input image into a single three dimensional color histogram comprising pixel locations according to color, each pixel location in the single three dimensional color histogram representing a pixel in the input image; creating clusters of pixel locations based on color in the single three dimensional color histogram according to a color clustering technique; identifying one or more colors in the single three dimensional color histogram according to the clusters; displaying a color palette comprising one or more palette colors obtained at least in part using the identified one or more colors from the clustering technique and one or more controls corresponding to each of the one or more palette colors, each control operable to modify the respective color in the input image associated with the respective palette color; obtaining an input modifying a palette color; performing a structure-preserving editing technique that modifies the color of the clusters corresponding to the palette color in the single three dimensional color histogram, the structure-preserving editing technique maintaining a structure of the clusters in the input image; modifying colors in the input image based on the changes to the single three dimensional color histogram; and displaying the modified input image.