diff --git a/go.mod b/go.mod index 7290b1a8a27..54c42195f9a 100644 --- a/go.mod +++ b/go.mod @@ -8,6 +8,7 @@ require ( github.com/bmatcuk/doublestar/v4 v4.6.1 github.com/disintegration/imaging v1.6.2 github.com/dlclark/regexp2 v1.11.0 + github.com/edwvee/exiffix v0.0.0-20240229113213-0dbb146775be github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 github.com/seancfoley/ipaddress-go v1.5.5 @@ -24,6 +25,7 @@ require ( github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a // indirect github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b // indirect + github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd // indirect github.com/seancfoley/bintree v1.2.3 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect diff --git a/go.sum b/go.sum index bec543497f6..e943956982d 100644 --- a/go.sum +++ b/go.sum @@ -15,6 +15,8 @@ github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1 github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI= github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/edwvee/exiffix v0.0.0-20240229113213-0dbb146775be h1:FNPYI8/ifKGW7kdBdlogyGGaPXZmOXBbV1uz4Amr3s0= +github.com/edwvee/exiffix v0.0.0-20240229113213-0dbb146775be/go.mod h1:G3dK5MziX9e4jUa8PWjowCOPCcyQwxsZ5a0oYA73280= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -36,6 +38,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b h1:0LFwY6Q3gMACTjAbMZBjXAqTOzOwFaj2Ld6cjeQ7Rig= github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd h1:CmH9+J6ZSsIjUK3dcGsnCnO41eRBOnY12zwkn5qVwgc= +github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk= github.com/seancfoley/bintree v1.2.3 h1:6SPPax/9Dilcs3mDTj3CarRCWPZJV30KyP3cjcEwF70= github.com/seancfoley/bintree v1.2.3/go.mod h1:hIUabL8OFYyFVTQ6azeajbopogQc2l5C/hiXMcemWNU= github.com/seancfoley/ipaddress-go v1.5.5 h1:Q2isCacDQ3A46hxSbM9Q2+Gs4IopCVz1oH88L5eEgP4= diff --git a/kittens/icat/native.go b/kittens/icat/native.go index ba9075bba74..43aad067ee9 100644 --- a/kittens/icat/native.go +++ b/kittens/icat/native.go @@ -13,6 +13,7 @@ import ( "kitty/tools/utils/shm" "github.com/disintegration/imaging" + "github.com/edwvee/exiffix" ) var _ = fmt.Print @@ -109,7 +110,7 @@ func scale_image(imgd *image_data) bool { } func load_one_frame_image(imgd *image_data, src *opened_input) (img image.Image, err error) { - img, err = imaging.Decode(src.file, imaging.AutoOrientation(true)) + img, _, err = exiffix.Decode(src.file) src.Rewind() if err != nil { return diff --git a/tools/utils/images/loading.go b/tools/utils/images/loading.go index 713d44cfbfc..ef658316004 100644 --- a/tools/utils/images/loading.go +++ b/tools/utils/images/loading.go @@ -22,6 +22,7 @@ import ( "kitty/tools/utils/shm" "github.com/disintegration/imaging" + "github.com/edwvee/exiffix" "golang.org/x/exp/slices" ) @@ -254,7 +255,7 @@ func OpenNativeImageFromReader(f io.ReadSeeker) (ans *ImageData, err error) { return nil, err } } else { - img, err := imaging.Decode(f, imaging.AutoOrientation(true)) + img, _, err := exiffix.Decode(f) if err != nil { return nil, err }