| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | package metadataimport (	"errors"	"image/jpeg"	"path/filepath"	"imuslab.com/arozos/mod/filesystem"	"imuslab.com/arozos/mod/filesystem/renderer")func generateThumbnailForModel(fsh *filesystem.FileSystemHandler, cacheFolder string, file string, generateOnly bool) (string, error) {	if fsh.RequireBuffer {		return "", nil	}	fshAbs := fsh.FileSystemAbstraction	if !fshAbs.FileExists(file) {		//The user removed this file before the thumbnail is finished		return "", errors.New("Source not exists")	}	//Generate a render of the 3d model	outputFile := cacheFolder + filepath.Base(file) + ".jpg"	r := renderer.NewRenderer(renderer.RenderOption{		Color:           "#f2f542",		BackgroundColor: "#ffffff",		Width:           480,		Height:          480,	})	img, _ := r.RenderModel(file)	opt := jpeg.Options{		Quality: 90,	}	f, err := fshAbs.Create(outputFile)	if err != nil {		return "", err	}	jpeg.Encode(f, img, &opt)	f.Close()	if !generateOnly && fshAbs.FileExists(outputFile) {		//return the image as well		ctx, err := getImageAsBase64(fsh, outputFile)		return ctx, err	} else if !fshAbs.FileExists(outputFile) {		return "", errors.New("Image generation failed")	}	return "", nil}
 |