Upload Image
To process images on your local machine you should use a LocalImageRequest.
This uploads the image from your machine to Zara 4 for processing.
Example usage
// Import Zara 4 classes use Zara4\API\Client; use Zara4\API\ImageProcessing\LocalImageRequest; use Zara4\API\ImageProcessing\ProcessedImage; // ... $apiClient = new Client('API_CLIENT_ID', 'API_CLIENT_SECRET'); $originalImage = new LocalImageRequest("/path/to/original-image.jpg"); $processedImage = $apiClient->processImage($originalImage); $apiClient->downloadProcessedImage($processedImage, "/where/to/save/compressed-image.jpg");
// Import Zara 4 classes import com.zara4.api.*; // ... Client apiClient = new Client("API_CLIENT_ID", "API_CLIENT_SECRET"); LocalImageRequest originalImage = new LocalImageRequest("/path/to/original-image.jpg"); ProcessedImage processedImage = apiClient.processImage(originalImage); apiClient.downloadProcessedImage(processedImage, "/where/to/save/compressed-image.jpg");
# Import Zara 4 classes require 'zara4' # ... api_client = Zara4::API::Client.new({ 'client_id' => 'API_CLIENT_ID', 'client_secret' => 'API_CLIENT_SECRET' }) original_image = Zara4::API::ImageProcessing::LocalImageRequest.new('/path/to/original-image.jpg') processed_image = api_client.process_image(original_image) api_client.download_processed_image(processed_image, '/where/to/save/compressed-image.jpg')
NODEJS CODE
PYTHON CODE
'Import Zara 4 classes' Imports Zara4.API Imports Zara4.API.ImageProcessing '...' Dim apiClient = new Client("API_CLIENT_ID", "API_CLIENT_SECRET") Dim originalImage = New LocalImageRequest("/path/to/original-image.jpg") Dim processedImage = apiClient.processImage(originalImage) apiClient.downloadProcessedImage(processedImage, "/where/to/save/compressed-image.jpg")
// Import Zara 4 classes using Zara4.API; using Zara4.API.ImageProcessing; // ... Client apiClient = new Client("API_CLIENT_ID", "API_CLIENT_SECRET"); LocalImageRequest originalImage = new LocalImageRequest("/path/to/original-image.jpg"); ProcessedImage processedImage = apiClient.processImage(originalImage); apiClient.downloadProcessedImage(processedImage, "/where/to/save/compressed-image.jpg");
Manual Request
To access the API you will need to provide an access_token
(see authentication).
You can also perform a limited number of image processing requests anonymously (without an access_token
).
Upload Image Request
curl "https://api.zara4.com/v1/image-processing/request" \ -F "access_token=ACCESS_TOKEN" \ -F "file=@/path/to/your/image.jpg"
Example Response
{ "status":"ok", "request-id":"6de1c660-b347-11e5-8c6e-b9b63cf255a8", "request":{ "optimisation-mode":"compromise", "colour-enhancement":"none", "resize-mode":"none", "width":null, "height":null }, "compression":{ "bytes-original":2078890, "bytes-compressed":530036, "bytes-saving":1548854, "ratio-compression":0.2549610609508, "percentage-saving":74.50389390492 }, "generated-images":{ "names":[ "6de1c660-b347-11e5-8c6e-b9b63cf255a8.jpg" ], "urls":[ "https:\/\/api.zara4.com\/v1\/file\/6de1c660-b347-11e5-8c6e-b9b63cf255a8\/6de1c660-b347-11e5-8c6e-b9b63cf255a8.jpg" ] } }
Fetch compressed image
The response includes generated-images
containing a list of urls
for your optimised image.
Each url is valid for up to 2 hours.
If you used an access_token
to submit your image processing request, you will also need to use an access token
to fetch an optimised image.
wget "https://api.zara4.com/v1/file/6de1c660-b347-11e5-8c6e-b9b63cf255a8/6de1c660-b347-11e5-8c6e-b9b63cf255a8.jpg?access_token=ACCESS_TOKEN"