27 lines
583 B
Go
27 lines
583 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"image"
|
|
|
|
"github.com/muesli/smartcrop"
|
|
"github.com/muesli/smartcrop/nfnt"
|
|
"github.com/nfnt/resize"
|
|
)
|
|
|
|
func GetBestPieceOfImage(width, height int, img image.Image) image.Image {
|
|
analyzer := smartcrop.NewAnalyzer(nfnt.NewDefaultResizer())
|
|
bestCrop, _ := analyzer.FindBestCrop(img, 800, 480)
|
|
|
|
fmt.Printf("Best crop: %+v\n", bestCrop)
|
|
|
|
type SubImager interface {
|
|
SubImage(r image.Rectangle) image.Image
|
|
}
|
|
croppedImg := img.(SubImager).SubImage(bestCrop)
|
|
|
|
resizedImg := resize.Resize(800, 480, croppedImg, resize.Lanczos3)
|
|
|
|
return resizedImg
|
|
}
|