optidash/optidash

Official PHP integration for Optidash - AI-powered image optimization and processing API. We will drastically speed-up your websites and save you money on bandwidth and storage.

1.0.3 2021-02-04 11:33 UTC

This package is auto-updated.

Last update: 2024-03-04 18:57:57 UTC


README

Optidash

Optidash is a modern, AI-powered image optimization and processing API.
We will drastically speed-up your websites and save you money on bandwidth and storage.

The official PHP integration for the Optidash API.

68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d7261772f6f707469646173682d61692f6f707469646173682d7068703f7374796c653d666c617426636f6c6f723d73756363657373 68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6f707469646173682d61692f6f707469646173682d7068703f7374796c653d666c617426636f6c6f723d73756363657373 68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6f7074696461736841493f6c6162656c3d466f6c6c6f772532305573267374796c653d666c617426636f6c6f723d73756363657373266c6f676f3d74776974746572

Documentation

See the Optidash API docs.

Installation

$ composer require optidash/optidash

Quick examples

Optidash API enables you to provide your images for processing in two ways - by uploading them directly to the API (Image Upload) or by providing a publicly available image URL (Image Fetch).

You may also choose your preferred response method on a per-request basis. By default, the Optidash API will return a JSON response with rich metadata pertaining to input and output images. Alternatively, you can use binary responses. When enabled, the API will respond with a full binary representation of the resulting (output) image. This PHP integration exposes two convenience methods for interacting with binary responses: toFile() and toBuffer().

Image upload

Here is a quick example of uploading a local file for optimization and processing. It calls toJSON() at a final step and instructs the API to return a JSON response.

<?php

// Pass your Optidash API Key to the constructor
$opti = new Optidash\Optidash('your-api-key');

// Upload an image from disk, resize it to 100 x 75,
// automatically enhance, and adjust sharpness parameter.
$opti
    ->upload('path/to/input.jpg')
    ->optimize(array(
        'compression' => 'medium'
    ))
    ->resize(array(
        'width' => 100,
        'height' => 75
    ))
    ->auto(array(
        'enahnce' => true
    ))
    ->adjust(array(
        'unsharp' => 10
    ))
    ->toJSON(function ($error, $meta) {
        if (!empty($error)) {
            throw new Exception($error);
        }

        // You'll find the full JSON metadata within the `meta` variable
    });

Image fetch

If you already have your source visuals publicly available online, we recommend using Image Fetch by default. That way you only have to send a JSON payload containing image URL and processing steps. This method is also much faster than uploading a full binary representation of the image.

<?php

// Pass your Optidash API Key to the constructor
$opti = new Optidash\Optidash('your-api-key');

// Provide a publicly available image URL with `fetch()` method,
// apply Gaussian blur using highly optimized PNG as the output format.
// We'll also use `toFile()` method and stream the output image to disk
$opti
    ->fetch('https://www.website.com/image.jpg')
    ->optimize(array(
        'compression' => 'medium'
    ))
    ->filter(array(
        'blur' => array(
            'mode' => 'gaussian',
            'value' => 10
        )
    ))
    ->output(array(
        'format' => 'png'
    ))
    ->toFile('path/to/output.png', function ($error, $meta) {
        if (!empty($error)) {
            throw new Exception($error);
        }

        // You'll find the full JSON metadata within the `meta` variable
    });

License

This software is distributed under the MIT License. See the LICENSE file for more information.