Skip to content

muesli/smartcrop

Repository files navigation

smartcrop.go

smartcrop implementation in Go

smartcrop finds good crops for arbitrary images and crop sizes, based on Jonas Wagner's smartcrop.js

Example Image: https://www.flickr.com/photos/usfwspacific/8182486789 CC BY U.S. Fish & Wildlife

Installation

Make sure you have a working Go environment. See the install instructions.

To install smartcrop, simply run:

go get github.com/muesli/smartcrop

To compile it from source:

git clone git://github.com/muesli/smartcrop.git
cd smartcrop && go build && go test -v

Example

package main

import (
	"github.com/muesli/smartcrop"
	"fmt"
	"image"
	_ "image/png"
	"os"
)

func main() {
	fi, _ := os.Open("test.png")
	defer fi.Close()

	img, _, _ := image.Decode(fi)
	topCrop, _ := smartcrop.SmartCrop(&img, 250, 250)
	fmt.Printf("Top crop: %+v\n", topCrop)
}

Also see the test-cases in crop_test.go for further working examples.

Development

API docs can be found here.

Join us on IRC: irc.freenode.net/#smartcrop

Continuous integration: Build Status