diff options
author | 2024-07-19 15:28:43 +0000 | |
---|---|---|
committer | 2024-07-19 17:28:43 +0200 | |
commit | 50c9b5498b9be266bd04278a97978e38984424a2 (patch) | |
tree | a371b4b5b8796af3f8262916c69e53b9c1e5af24 /internal/media/util.go | |
parent | [docs] update README with our corporate sponsorship policy (#3112) (diff) | |
download | gotosocial-50c9b5498b9be266bd04278a97978e38984424a2.tar.xz |
[feature] use webp for thumbnails (#3116)
* update to use webp for thumbnails
* bump webp quality up to 40% from 12% (it's a bit different to jpeg quality setting)
* update to use yuva colorspace, and use thumbnail=n=10 to select frame
* fix missing comma in ffmpeg args
* add links to appropriate ffmpeg docs
* update tests
* add file size tests for thumbnails
---------
Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Diffstat (limited to 'internal/media/util.go')
-rw-r--r-- | internal/media/util.go | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/internal/media/util.go b/internal/media/util.go index 4a31c9f8e..b643cd9c8 100644 --- a/internal/media/util.go +++ b/internal/media/util.go @@ -22,13 +22,15 @@ import ( "errors" "fmt" "image" - "image/jpeg" "io" "os" + "golang.org/x/image/webp" + "codeberg.org/gruf/go-bytesize" "codeberg.org/gruf/go-iotools" "codeberg.org/gruf/go-mimetypes" + "github.com/buckket/go-blurhash" "github.com/disintegration/imaging" ) @@ -63,8 +65,8 @@ func thumbSize(width, height int) (int, int) { } } -// jpegDecode decodes the JPEG at filepath into parsed image.Image. -func jpegDecode(filepath string) (image.Image, error) { +// webpDecode decodes the WebP at filepath into parsed image.Image. +func webpDecode(filepath string) (image.Image, error) { // Open the file at given path. file, err := os.Open(filepath) if err != nil { @@ -72,7 +74,7 @@ func jpegDecode(filepath string) (image.Image, error) { } // Decode image from file. - img, err := jpeg.Decode(file) + img, err := webp.Decode(file) // Done with file. _ = file.Close() @@ -83,7 +85,7 @@ func jpegDecode(filepath string) (image.Image, error) { // generateBlurhash generates a blurhash for JPEG at filepath. func generateBlurhash(filepath string) (string, error) { // Decode JPEG file at given path. - img, err := jpegDecode(filepath) + img, err := webpDecode(filepath) if err != nil { return "", err } |