A computer-implemented method, comprising: obtaining a request associated with screen printing an image on a product, the request comprising one source image, a key color value indicating a number of inks or key colors for use in the screen printing, and a key color area value indicating a minimum area for a particular color in the source image to be identified as one of the key colors; transforming the source image to a destination image that is usable in the screen printing of the product, based on the key color value and the key color area value, the transforming comprising finding key color components , wherein finding key color components comprises: filtering the source image so that contiguous color areas that are close in color space are preserved, and represented by a candidate color, wherein the candidate color is a member of a contiguous area, and wherein color areas in the source image that are not contiguous are filtered out, and wherein each contiguous color area must occupy more than the minimum area to pass the filtering task; grouping color elements in the filtered source image into n groups, where n is a number of key colors to be used for screen printing, wherein color elements are placed in groups that are a maximum distance apart from one another in color space, and wherein group centers are chosen by population and by maximizing a separation; sending the destination image for use in screen printing; wherein each of the steps is performed by one or more processors. obtaining a request associated with screen printing an image on a product, the request comprising one source image, a key color value indicating a number of inks or key colors for use in the screen printing, and a key color area value indicating a minimum area for a particular color in the source image to be identified as one of the key colors; transforming the source image to a destination image that is usable in the screen printing of the product, based on the key color value and the key color area value, the transforming comprising finding key color components , wherein finding key color components comprises: filtering the source image so that contiguous color areas that are close in color space are preserved, and represented by a candidate color, wherein the candidate color is a member of a contiguous area, and wherein color areas in the source image that are not contiguous are filtered out, and wherein each contiguous color area must occupy more than the minimum area to pass the filtering task; grouping color elements in the filtered source image into n groups, where n is a number of key colors to be used for screen printing, wherein color elements are placed in groups that are a maximum distance apart from one another in color space, and wherein group centers are chosen by population and by maximizing a separation; filtering the source image so that contiguous color areas that are close in color space are preserved, and represented by a candidate color, wherein the candidate color is a member of a contiguous area, and wherein color areas in the source image that are not contiguous are filtered out, and wherein each contiguous color area must occupy more than the minimum area to pass the filtering task; grouping color elements in the filtered source image into n groups, where n is a number of key colors to be used for screen printing, wherein color elements are placed in groups that are a maximum distance apart from one another in color space, and wherein group centers are chosen by population and by maximizing a separation; sending the destination image for use in screen printing; wherein each of the steps is performed by one or more processors. <EOS>