[performance] move thumbnail generation to go code where possible (#3183)

* wrap thumbnailing code to handle generation natively where possible

* more code comments!

* add even more code comments!

* add code comments about blurhash generation

* maintain image rotation if contained in exif data

* move rotation before resizing

* ensure pix_fmt actually selected by ffprobe, check for alpha layer with gifs

* use linear instead of nearest-neighbour for resizing

* work with image "orientation" instead of "rotation". use default 75% quality for both webp and jpeg generation

* add header to new file

* use thumb extension when getting thumb mime type

* update test models and tests with new media processing

* add suggested code comments

* add note about thumbnail filter count reducing memory usage
This commit is contained in:
kim
2024-08-08 17:12:13 +00:00
committed by GitHub
parent 94c615d417
commit f77005128a
36 changed files with 588 additions and 215 deletions

View File

@ -166,7 +166,7 @@ func (suite *ServeFileTestSuite) TestServeSmallRemoteFileOK() {
)
suite.Equal(http.StatusOK, code)
suite.Equal("image/webp", headers.Get("content-type"))
suite.Equal("image/jpeg", headers.Get("content-type"))
suite.Equal(fileInStorage, body)
}
@ -212,7 +212,7 @@ func (suite *ServeFileTestSuite) TestServeSmallRemoteFileRecache() {
)
suite.Equal(http.StatusOK, code)
suite.Equal("image/webp", headers.Get("content-type"))
suite.Equal("image/jpeg", headers.Get("content-type"))
suite.Equal(fileInStorage, body)
}