OILPAINT API Endpoint

Version 2.197 (Release Notes ↗)

Description

Simulates an oil painting effect by replacing each pixel with the most frequent color in a defined circular region, ideal for developers and creators looking to enhance visual content. Simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

HTTP Methods

GET, POST

HTTP Parameters

Required

Fields Type Description
img URL Input image URL. If you want to upload your image directly from your app, then submit a multipart/form-data POST request.
radius Float The radius of the circular neighborhood (Max value is set to 10.00).
key String Your PixLab API Key ↗. You can also embed your key in the WWW-Authenticate: HTTP header and omit this parameter if you want to.

Optional

Fields Type Description
blob Boolean By default, this API endpoint returns a JSON Object holding the link to the image output. If set to true, the image binary contents are returned instead.

POST Request Body

Use multipart/form-data or application/json for POST requests.

Upload images directly with multipart/form-data (see REST API code samples or The PixLab Github Repository↗ for examples). For JSON, ensure the image is already hosted. Use store to upload images before invoking this endpoint.

HTTP Response

The OILPAINT endpoint returns application/json if the optional blob parameter is not set.


This endpoint returns a JSON Object after each call unless the blob parameter is specified, in which case the raw image binary is returned. The response JSON contains the following fields:

Fields Type Description
status Integer Status code 200 indicates success, any other code indicates failure.
link URL Link to the processed image stored on the pixlab.xyz CDN unless custom S3 keys are configured (see your dashboard ↗ for configuration).
id String Unique identifier for the processed image.
error String Error description when status ≠ 200.

Code Samples


import requests


def process_image(image_url: str, radius: int, api_key: str) -> None:
    try:
        response = requests.get(
            'https://api.pixlab.io/oilpaint',
            params={
                'img': image_url,
                'radius': radius,
                'key': api_key
            },
            timeout=10
        )
        response.raise_for_status()
        data = response.json()

        if data['status'] != 200:
            print(f"Error: {data.get('error', 'Unknown error')}")
        else:
            print(f"Link to the picture: {data['link']}")

    except requests.exceptions.RequestException as e:
        print(f"Request failed: {e}")
    except ValueError:
        print("Invalid JSON response")
    except KeyError:
        print("Malformed API response")


if __name__ == '__main__':
    process_image(
        image_url='http://www.allaboutbirds.org/guide/PHOTO/LARGE/blue_jay_8.jpg',
        radius=3,
        api_key='PIXLAB_API_KEY'
    )
← Return to API Endpoint Listing