package images

import (
	"bytes"
	"io"
	"path/filepath"
	"strings"
)

/*
* Preprocess image files on client side.
* 1. possibly adjust the orientation
* 2. resize the image to a width or height limit
* 3. remove the exif data
* Call this function on any file uploaded to SeaweedFS
*
 */
func MaybePreprocessImage(filename string, data []byte, width, height int) (resized io.ReadSeeker, w int, h int) {
	ext := filepath.Ext(filename)
	ext = strings.ToLower(ext)
	switch ext {
	case ".png", ".gif":
		return Resized(ext, bytes.NewReader(data), width, height, "")
	case ".jpg", ".jpeg":
		data = FixJpgOrientation(data)
		return Resized(ext, bytes.NewReader(data), width, height, "")
	}
	return bytes.NewReader(data), 0, 0
}