API Endpoint Access URL
https://api.pixlab.io/oilpaint
Get Your API Key & Try OILPAINT Now ↗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'
)
fetch('https://api.pixlab.io/oilpaint?img=http://www.allaboutbirds.org/guide/PHOTO/LARGE/blue_jay_8.jpg&radius=3&key=PIXLAB_API_KEY')
.then(response => response.json())
.then(reply => {
if (reply.status !== 200) {
console.log(reply.error);
} else {
console.log("Link to the pic: " + reply.link);
}
})
.catch(error => console.error('Error:', error));
<?php
$params = [
'img' => 'http://www.allaboutbirds.org/guide/PHOTO/LARGE/blue_jay_8.jpg',
'radius' => 3,
'key' => 'PIXLAB_API_KEY'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.pixlab.io/oilpaint?' . http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
$reply = json_decode($response, true);
if ($reply['status'] != 200) {
echo $reply['error'];
} else {
echo "Link to the pic: " . $reply['link'];
}
require 'net/http'
require 'json'
uri = URI('https://api.pixlab.io/oilpaint')
params = { img: 'http://www.allaboutbirds.org/guide/PHOTO/LARGE/blue_jay_8.jpg', radius: 3, key: 'PIXLAB_API_KEY' }
uri.query = URI.encode_www_form(params)
response = Net::HTTP.get_response(uri)
reply = JSON.parse(response.body)
if reply['status'] != 200
puts reply['error']
else
puts "Link to the pic: #{reply['link']}"
end
Similar API Endpoints
shade, negate, separate, sketch, normalize, orderedposterize, polaroid, posterize, segment, quantize, raise, grayscale