package thumb import ( "fmt" "image" "github.com/disintegration/imaging" "github.com/photoprism/photoprism/pkg/fs" ) // StandardRGB configures whether colors in the Apple Display P3 color space should be converted to standard RGB. var StandardRGB = true // Open loads an image from disk, rotates it, and converts the color profile if necessary. func Open(fileName string, orientation int) (result image.Image, err error) { // Filename missing? if fileName == "" { return result, fmt.Errorf("filename missing") } // Resolve symlinks. if fileName, err = fs.Resolve(fileName); err != nil { return result, err } // Open JPEG? if StandardRGB && fs.FileType(fileName) == fs.ImageJPEG { return OpenJpeg(fileName, orientation) } // Open file with imaging function. img, err := imaging.Open(fileName) if err != nil { return result, err } // Adjust orientation. if orientation > 1 { img = Rotate(img, orientation) } return img, nil }