Use jpegli for smaller files

This commit is contained in:
Milan Nikolic
2024-11-03 19:05:02 +01:00
parent 622c82a9df
commit 5f5fa2bb80
3 changed files with 13 additions and 2 deletions

View File

@@ -8,7 +8,6 @@ import (
"fmt"
"image"
_ "image/gif"
"image/jpeg"
"image/png"
"io"
"os"
@@ -20,6 +19,7 @@ import (
"sync/atomic"
"github.com/gen2brain/avif"
"github.com/gen2brain/jpegli"
"github.com/gen2brain/jpegxl"
"github.com/gen2brain/webp"
"github.com/jsummers/gobmp"
@@ -504,7 +504,13 @@ func (c *Converter) imageEncode(img image.Image, w io.Writer) error {
case "tiff":
err = tiff.Encode(w, img, &tiff.Options{Compression: tiff.Uncompressed})
case "jpeg":
err = jpeg.Encode(w, img, &jpeg.Options{Quality: c.Opts.Quality})
opts := &jpegli.EncodingOptions{}
opts.Quality = c.Opts.Quality
opts.ChromaSubsampling = image.YCbCrSubsampleRatio420
opts.ProgressiveLevel = 2
opts.AdaptiveQuantization = true
opts.DCTMethod = jpegli.DefaultDCTMethod
err = jpegli.Encode(w, img, opts)
case "webp":
err = webp.Encode(w, img, webp.Options{Quality: c.Opts.Quality, Method: webp.DefaultMethod})
case "avif":

1
go.mod
View File

@@ -10,6 +10,7 @@ require (
github.com/gen2brain/avif v0.4.0
github.com/gen2brain/go-fitz v1.24.14
github.com/gen2brain/go-unarr v0.2.3
github.com/gen2brain/jpegli v0.3.1
github.com/gen2brain/jpegxl v0.4.1
github.com/gen2brain/webp v0.5.0
github.com/jsummers/gobmp v0.0.0-20230614200233-a9de23ed2e25

4
go.sum
View File

@@ -28,6 +28,10 @@ github.com/gen2brain/go-fitz v1.24.14 h1:09weRkjVtLYNGo7l0J7DyOwBExbwi8SJ9h8YPhw
github.com/gen2brain/go-fitz v1.24.14/go.mod h1:0KaZeQgASc20Yp5R/pFzyy7SmP01XcoHKNF842U2/S4=
github.com/gen2brain/go-unarr v0.2.3 h1:VwZg0P6Dc/8Uh51McjVhzUMg4wHwwbiyqjEFsFELc0c=
github.com/gen2brain/go-unarr v0.2.3/go.mod h1:hoHheVuf0KT8/hfvkEL7GMwj2h7fq0lF72NdyySdr3c=
github.com/gen2brain/jpegli v0.3.0 h1:u4YKRql9Ab/5eVCrFX6p/YBcIzV9ka15mKMXgdw4nis=
github.com/gen2brain/jpegli v0.3.0/go.mod h1:6Dbgr+ni1IUBqGVOKHn8lY+6DvwSGfAfC7pPQiSK6uA=
github.com/gen2brain/jpegli v0.3.1 h1:KxarZ9oL1mVdtzyGAyLJFduEKCs4itD52aRmS9nAkYc=
github.com/gen2brain/jpegli v0.3.1/go.mod h1:6Dbgr+ni1IUBqGVOKHn8lY+6DvwSGfAfC7pPQiSK6uA=
github.com/gen2brain/jpegxl v0.4.1 h1:jWaVp5GkXLJXjRvC+g0R9+uo+xoWiS7DYKxJ3n5gHL4=
github.com/gen2brain/jpegxl v0.4.1/go.mod h1:zIIDnzh7WqG+z66zyzLWQ0M4AS5xi//pyJLgu32GB1o=
github.com/gen2brain/webp v0.5.0 h1:nn3o0BtKltoFKX9rlDZG/Y/aWqNzUZVyXdB815yVNfU=