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 Go integration for the Optidash API.
See the Optidash API docs.
$ go get github.com/optidash-ai/optidash-go
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 Go 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.
package main
import (
"fmt"
"github.com/optidash-ai/optidash-go"
)
func main() {
// Pass your Optidash API Key to the constructor
opti, err := optidash.NewClient("your-api-key")
if err != nil {
panic(err)
}
// Upload an image from disk, resize it to 100 x 75,
// automatically enhance, and adjust sharpness parameter.
meta, err := opti.
Upload("path/to/input.jpg").
Optimize(optidash.P{
"compression": "medium"
}).
Resize(optidash.P{
"width": 100,
"height": 75
}).
Auto(optidash.P{
"enhance": true
}).
Adjust(optidash.P{
"unsharp": 10
}).
ToJSON()
if err != nil {
panic(err)
}
// You'll find the full JSON metadata within the `meta` variable
}
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.
package main
import (
"fmt"
"github.com/optidash-ai/optidash-go"
)
func main() {
// Pass your Optidash API Key to the constructor
opti, err := optidash.NewClient("your-api-key")
if err != nil {
panic(err)
}
// 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
meta, err := opti.
Fetch("https://www.website.com/image.jpg").
Optimize(optidash.P{
"compression": "medium"
}).
Filter(optidash.P{
"blur": optidash.P{
"mode": "gaussian",
"value": 10
}
}).
Output(optidash.P{
"format": "png"
}).
ToFile("path/to/output.png")
if err != nil {
panic(err)
}
// You'll find the full JSON metadata within the `meta` variable
}
This software is distributed under the MIT License. See the LICENSE file for more information.