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 Ruby integration for the Optidash API.
See the Optidash API docs.
$ gem install optidash
Optidash API enables you to provide your images for optimization and 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 Ruby integration exposes two convenience methods for interacting with binary responses: .toFile()
and .toBuffer()
.
Here is a quick example of uploading a local file for processing. It calls .toJSON()
at a final step and instructs the API to return a JSON response.
require "optidash"
# Pass your Optidash API Key to the constructor
opti = Optidash.new("your-api-key")
# Upload an image from disk, resize it to 100 x 75,
# automatically enhance, and adjust sharpness parameter.
# You'll find the full JSON metadata within the `meta` variable
err, meta = (
opti
.upload("path/to/input.jpg")
.optimize(
compression: "medium"
)
.resize(
width: 100,
height: 75
)
.auto(
enhance: true
)
.adjust(
unsharp: 10
)
.to_json()
)
abort(err) if err
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.
require "optidash"
# Pass your Optidash API Key to the constructor
opti = Optidash.new("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
err, meta = (
opti
.fetch("https://www.website.com/image.jpg")
.optimize(
compression: "medium"
)
.filter(
blur: (
mode: "gaussian",
value: 10
}
)
.output(
format: "png"
)
.to_file("path/to/output.png")
)
abort(err) if err
This software is distributed under the MIT License. See the LICENSE file for more information.