package Utils
import (
"github.com/nfnt/resize"
"image/jpeg"
"io"
"os"
"image"
)
/**
*
* @param {io.Reader} uploadedFile - uploaded image.
* @param {string} - filename.
* @param {int} height - image height.
* @param {int} quality - image quality.
* @return {error} - error handling
*
*/
func ProcessImage(uploadedFile io.Reader, fileName string, height, quality int) error {
img, _, err := image.Decode(uploadedFile)
if err != nil {
return err
}
resizedImg := resize.Resize(0, uint(height), img, resize.Lanczos3)
output, err := os.Create(fileName)
if err != nil {
return err
}
defer output.Close()
err = jpeg.Encode(output, resizedImg, &jpeg.Options{Quality: quality})
if err != nil {
return err
}
return nil
}