WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

imazen/imageflow-go

Repository files navigation

Go Binding for Imageflow

WindowsMacosLinux

Quickly scale or modify images and optimize them for the web.

If the AGPLv3 does not work for you, you can get a commercial license on a sliding scale. If you have more than 1 server doing image processing your savings should cover the cost.

Docs are here

Installation

Imageflow dependents on libimageflow for image processing capabilities. libimageflow is available as the static and dynamic shared library on Linux and macOS. Currently libimageflow is available as a dynamic library for Windows. Prebuilt shared libraries are available here. Add libimageflowto OS path. Then it can be downloaded usinggo get.

$ go get github.com/imazen/imageflow-go

Usage

A simple go program to create two image of different size.

package main;

import (
	"io/ioutil"

	imageflow "github.com/imazen/imageflow-go"
)

func main(){
	step:=imageflow.NewStep()
	data,_:=step
	.Decode(imageflow.NewURL("https://jpeg.org/images/jpeg2000-home.jpg"))
	.Branch(func(step *imageflow.Steps){
		step
		.ConstrainWithin(200,200)
		.Encode(imageflow.NewFile("test_1.jpg"),imageflow.MozJPEG{})
	}).ConstrainWithin(400,400)
	.Encode(imageflow.GetBuffer("test"),imageflow.MozJPEG{})
	.Execute()
	ioutil.WriteFile("test_2.jpeg",data["test"],0644)
}