Releases: cshum/imagor
v0.8.18
PDF Thumbnail Support
Imagor now supports generating PDF Thumbnail. Example:
http://localhost:8000/unsafe/fit-in/200x200/filters:fill(cyan)/http://www.africau.edu/images/default/sample.pdf
Config File
Configuration may be specified in a .env configuration file and referenced with the -config flag.
PORT=8000
IMAGOR_SECRET=mysecret
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_REGION=...
imagor -config path/to/config.env
imagor -config path/to/config.env
What's Changed
Full Changelog: v0.8.17...v0.8.18
v0.8.17
Experimental AVIF Conversion
Output AVIF format automatically if browser supports, based on Accept
request header check for image/avif
(thanks @lorenries)
-imagor-auto-avif
Output Avif format automatically if browser supports
However AVIF encoder at this stage is very slow and image size is not optimal compare to the WebP counterpart.
GitHub Container Registry
Starting from v0.8.17, Imagor Docker image is now available at Github Container Registry with multi-CPU architecture support.
Quick Start
docker run -p 8000:8000 ghcr.io/cshum/imagor:v0.8.17 -imagor-unsafe -imagor-auto-webp
What's Changed
- Add support for avif and auto avif by @lorenries in #52
- Update Go to 1.18 by @bcspragu in #50
- build: GitHub Container Registry publish actions
New Contributors
- @lorenries made their first contribution in #52
- @bcspragu made their first contribution in #50
Full Changelog: v0.8.16...v0.8.17
v0.8.16
Automatic WebP Conversion
Output WebP format automatically if browser supports, based on Accept
request header check for image/webp
-imagor-auto-webp
Output WebP format automatically if browser supports
Base Path Redirect URL
Ability to configure URL for redirection on base path /
-imagor-base-path-redirect string
URL to redirect for Imagor / base path e.g. https://www.google.com
What's Changed
- feat(imagor): base path redirect option by @cshum in #43 #40
- refactor(httploader): HTTP Loader default accepts image/* by @cshum in #42
- feat(imagor): output WebP format automatically if browser supports by @cshum in #41 #39
Full Changelog: v0.8.15...v0.8.16
v0.8.15
Google Cloud Storage Support
Imagor now supports Google Cloud Storage for Loader, Storage and Result Storage (thanks @srlk).
Docker Compose Example
version: "3"
services:
imagor:
image: shumc/imagor:latest
volumes:
- ./googlesecret:/etc/secrets/google
environment:
PORT: 8000
IMAGOR_SECRET: mysecret # secret key for URL signature
GOOGLE_APPLICATION_CREDENTIALS: /etc/secrets/google/appcredentials.json # google cloud secrets file
GCLOUD_LOADER_BUCKET: mybucket # enable loader by specifying bucket
GCLOUD_LOADER_BASE_DIR: images # optional
GCLOUD_STORAGE_BUCKET: mybucket # enable storage by specifying bucket
GCLOUD_STORAGE_BASE_DIR: images # optional
GCLOUD_RESULT_STORAGE_BUCKET: mybucket # enable result storage by specifying bucket
GCLOUD_RESULT_STORAGE_BASE_DIR: images/result # optional
GCLOUD_RESULT_STORAGE_ACL: publicRead # optional - see https://cloud.google.com/storage/docs/json_api/v1/objects/insert
ports:
- "8000:8000"
What's Changed
- Google Cloud Storage support by @srlk in #33
- fix: rename -http-loader-forward-all-headers to -http-loader-forward-client-headers #36
New Contributors
Full Changelog: v0.8.12...v0.8.15
v0.8.12
Crop params in percentage
Imagor now supports cropping image by percentage float params. Useful for cropping image when image size is not known beforehand. (thanks @pletessier )
Example:
http://localhost:8000/unsafe/0.1x0.2:0.8x0.9/filters:fill(cyan)/raw.githubusercontent.com/cshum/imagor/master/testdata/dancing-banana.gif
What's Changed
- Crop params in percentage by @pletessier in #28
- feat(vips): float support for watermark position
- fix(vips): crop animated height handling and cleanup
- fix(imagor): neglect warn log for result loader error
New Contributors
- @pletessier made their first contribution in #28
Full Changelog: v0.8.10...v0.8.12
v0.8.10
Expiration support for File & S3, Storage & Result Storage
New configuration options:
-file-storage-expiration duration
File Storage expiration duration e.g. 24h. Default no expiration
-file-result-storage-expiration duration
File Result Storage expiration duration e.g. 24h. Default no expiration
-s3-storage-expiration duration
S3 Storage expiration duration e.g. 24h. Default no expiration
-s3-result-storage-expiration duration
S3 Result Storage expiration duration e.g. 24h. Default no expiration
Changes
- feat(storage): s3 and file storage expiration support
- refactor(imagorpath): Normlize add escapeByte func
- build: update govips
v0.8.9
Animation support for repeated watermarks
Example
http://localhost:8000/unsafe/fit-in/200x150/filters:fill(cyan):watermark(raw.githubusercontent.com/cshum/imagor/master/testdata/dancing-banana.gif,repeat,bottom,0,40,40)/raw.githubusercontent.com/cshum/imagor/master/testdata/dancing-banana.gif
Changes
- feat(vips): animated repeated watermark support
- feat(imagor): imagor process concurrency semaphore
- feat(vips): new proportion(percentage) filter
- feat(vips): new crop(top,left,right,bottom) filter
- fix(imagor) IsPNG should call readAllOnce
- feat: add s3 force path style option
- fix(imagor): move semaphore before load storage
v0.8.6
Introducing frames filter
frames(n[, delay])
set the number of frames to repeat for animation with gif or webp. Otherwise, stack all the frames verticallyn
number of frames to repeatdelay
frames delay in milliseconds, default 100
Frames filter allows you to control number of frames and animation speed. It also allows animating a static image in conjunction with a gif watermark. Example:
http://localhost:8000/unsafe/fit-in/200x200/filters:fill(white):frames(8,150):watermark(raw.githubusercontent.com/cshum/imagor/master/testdata/dancing-banana.gif,center,bottom):format(gif)/raw.githubusercontent.com/cshum/imagor/master/testdata/gopher.png
Changes
- feat(vips): frames filter
- fix(vips): watermark missing args
- build: update vips to v8.12.2
v0.8.5
- feat(vips): added animated watermark support
- feat(vips): aded left-top and right-bottom padding support, using the new URL syntax
GxH:IxJ
Example:
http://localhost:8000/unsafe/300x0/0x20:100x20/filters:fill(yellow):watermark(raw.githubusercontent.com/cshum/imagor/master/testdata/dancing-banana.gif,-30,10,0,50,50):watermark(raw.githubusercontent.com/cshum/imagor/master/testdata/dancing-banana.gif,-10,-10,0,50,50)/raw.githubusercontent.com/cshum/imagor/master/testdata/nyan-cat.gif
v0.8.1
Introducing Animation Support
Imagor is rewritten to support animation for various common operations. The maximum of animated image frames can be configured using cli arguments:
-vips-max-animation-frames int
VIPS maximum of animated image frames to be processed. Set 1 to disable animation, -1 for unlimited. (default -1)
original image
https://raw.githubusercontent.com/cshum/imagor/master/testdata/dancing-banana.gif
fit-in, fill and watermark example:
http://localhost:8000/unsafe/fit-in/200x150/filters:fill(yellow):watermark(raw.githubusercontent.com/cshum/imagor/master/testdata/gopher-front.png,repeat,bottom,0,40,40)/raw.githubusercontent.com/cshum/imagor/master/testdata/dancing-banana.gif
crop and fill example:
http://localhost:8000/unsafe/30x40:100x150/filters:fill(cyan)/raw.githubusercontent.com/cshum/imagor/master/testdata/dancing-banana.gif