1. A computer-implemented method for generating a color palette, the computer-implemented method comprising: under control of a hardware computing device configured with specific computer-executable instructions, obtaining a color image; obtaining a plurality of palette generation criteria applicable to generating a color palette based, at least in part, on the color image, wherein the plurality of palette generation criteria indicate at least one threshold for generating a plurality of palette candidates; generating the plurality of palette candidates corresponding to the color image, wherein each palette candidate of the plurality of palette candidates is generated based, at least in part, on a distinct palette generation criterion of the plurality of palette generation criteria, wherein each palette candidate includes one or more palette colors derived from a plurality of representative colors associated with the color image and wherein the plurality of representative colors are identified from a color distribution corresponding to the color image; generating a color palette in accordance with a selection from the plurality of palette candidates based, at least in part, on an optimization of a relationship between an attribute associated with the plurality of palette candidates to a criterion of the plurality of palette generation criteria; and storing the color palette in a memory associated with the hardware computing device.