picture-frame/server/bestcrop.go
2023-06-03 13:17:29 -06:00

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
}