How to posterize an image by reducing colors in Python

Proper use of posterization can really make an image pop, adding a pleasing sense of style with very little effort. It is a perfect fit for any photo editing app, especially when it can be adjusted on the user’s end. So how will we be able to add this type of functionality without spending hour after hour of testing and debugging? Simple, there’s an API out there that will do it for us, we just need to set it up and call it.

Our setup involves pip install, as you see here:

pip install cloudmersive-image-api-client

And now we can create our API instance with a trial key and then call filter_posterize with our color levels and image file path as arguments:

from __future__ import print_functionimport timeimport cloudmersive_image_api_clientfrom cloudmersive_image_api_client.rest import ApiExceptionfrom pprint import pprint# Configure API key authorization: Apikeyconfiguration = cloudmersive_image_api_client.Configuration()configuration.api_key['Apikey'] = 'YOUR_API_KEY'# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed# configuration.api_key_prefix['Apikey'] = 'Bearer'# create an instance of the API classapi_instance = cloudmersive_image_api_client.FilterApi(cloudmersive_image_api_client.ApiClient(configuration))levels = 56 # int | Number of unique colors to retain in the output imageimage_file = '/path/to/file' # file | Image file to perform the operation on.  Common file formats such as PNG, JPEG are supported.try:# Posterize the image by reducing distinct colorsapi_response = api_instance.filter_posterize(levels, image_file)pprint(api_response)except ApiException as e:print("Exception when calling FilterApi->filter_posterize: %s\n" % e)

And there it is, in all its simple glory. Let’s look at the resulting effect:

Image for post
Image for post

Vs the original:

Image for post
Image for post

What a difference!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store