package callback import ( "bytes" "fmt" "strings" "github.com/disintegration/imaging" ) func Rotate90Bytes(data []byte, ext string) ([]byte, error) { img, err := imaging.Decode(bytes.NewReader(data)) if err != nil { return nil, err } img = imaging.Rotate90(img) format := imaging.JPEG if strings.EqualFold(ext, ".png") { format = imaging.PNG } var buf bytes.Buffer if err = imaging.Encode(&buf, img, format); err != nil { return nil, fmt.Errorf("encode image: %w", err) } return buf.Bytes(), nil }