mirror of
https://github.com/gen2brain/cbconvert
synced 2025-10-13 18:18:52 +02:00
Use jpegli for smaller files
This commit is contained in:
10
cbconvert.go
10
cbconvert.go
@@ -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
1
go.mod
@@ -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
4
go.sum
@@ -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=
|
||||
|
Reference in New Issue
Block a user