URL builder and parser for ImageFlux.
ImageFlux is Image Conversion & Distribution Engine. This allows you to easily generate images optimized for each device based on a single source image, and delivers them quickly and with high quality.
The imageflux package builds and parse URLs for ImageFlux.
In ImageFlux, parameters for image transformation are embedded in the URL.
proxy := &imageflux.Proxy{
Host: "demo.imageflux.jp",
}
cfg := &imageflux.Config{
// resize the image to 200px width.
Width: 200,
// convert the image to WebP format.
Format: imageflux.FormatWebPAuto,
}
u := proxy.Image("/images/1.jpg", cfg).SignedURL()
fmt.Println(u)
// Output:
// https://demo.imageflux.jp/c/w=200,f=webp:auto/images/1.jpg
By attaching a signature to the transformation parameters, it prevents third parties from rewriting the URL.
proxy := &imageflux.Proxy{
Host: "demo.imageflux.jp",
Secret: "testsigningsecret",
}
cfg := &imageflux.Config{
// resize the image to 200px width.
Width: 200,
}
u := proxy.Image("/images/1.jpg", cfg).SignedURL()
fmt.Println(u)
// Output:
// https://demo.imageflux.jp/c/sig=1.tiKX5u2kw6wp9zDgl1tLiOIi8IsoRIBw8fVgVc0yrNg=,w=200/images/1.jpg
proxy := &imageflux.Proxy{}
image, err := proxy.Parse("/c/w=200/images/1.jpg", "")
if err != nil {
log.Fatal(err)
}
fmt.Printf("path = %s\n", image.Path)
fmt.Printf("width = %d\n", image.Config.Width)
// Output:
// path = /images/1.jpg
// width = 200
- ImageFlux (written in Japanese)
- The document of ImageFlux (written in Japanese)