Skip to content

Commit

Permalink
ReductionEffort to 0 (#254)
Browse files Browse the repository at this point in the history
  • Loading branch information
n0vad3v authored Jul 18, 2023
1 parent a7b5992 commit 24b96a9
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 11 deletions.
2 changes: 1 addition & 1 deletion config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ var (
ProxyMode bool
Prefetch bool
Config jsonFile
Version = "0.9.4"
Version = "0.9.5"
WriteLock = cache.New(5*time.Minute, 10*time.Minute)
)

Expand Down
38 changes: 31 additions & 7 deletions encoder/encoder.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"os"
"path"
"runtime"
"strings"
"sync"
"webp_server_go/config"
"webp_server_go/helper"
Expand Down Expand Up @@ -224,17 +225,40 @@ func webpEncoder(p1, p2 string, extraParams config.ExtraParams) error {
// If quality >= 100, we use lossless mode
if quality >= 100 {
buf, _, err = img.ExportWebp(&vips.WebpExportParams{
Lossless: true,
StripMetadata: true,
ReductionEffort: 4,
Lossless: true,
StripMetadata: true,
})
// If some special images cannot encode with default ReductionEffort(0), then try with 4
// Example: /~https://github.com/webp-sh/webp_server_go/issues/234
if err != nil {
if strings.Contains(err.Error(), "unable to encode") {
log.Warnf("Can't encode source image to WebP with default ReductionEffort, retry using ReductionEffort:4")
buf, _, err = img.ExportWebp(&vips.WebpExportParams{
Lossless: true,
StripMetadata: true,
ReductionEffort: 4,
})
}
}
} else {
buf, _, err = img.ExportWebp(&vips.WebpExportParams{
Quality: quality,
Lossless: false,
StripMetadata: true,
ReductionEffort: 4,
Quality: quality,
Lossless: false,
StripMetadata: true,
})
// If some special images cannot encode with default ReductionEffort(0), then try with 4
// Example: /~https://github.com/webp-sh/webp_server_go/issues/234
if err != nil {
if strings.Contains(err.Error(), "unable to encode") {
log.Warnf("Can't encode source image to WebP with default ReductionEffort, retry using ReductionEffort:4")
buf, _, err = img.ExportWebp(&vips.WebpExportParams{
Quality: quality,
Lossless: false,
StripMetadata: true,
ReductionEffort: 4,
})
}
}
}

if err != nil {
Expand Down
6 changes: 3 additions & 3 deletions webp-server.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ import (
)

var app = fiber.New(fiber.Config{
ServerHeader: "Webp Server Go",
AppName: "Webp Server Go",
ServerHeader: "WebP Server Go",
AppName: "WebP Server Go",
DisableStartupMessage: true,
ProxyHeader: "X-Real-IP",
})
Expand All @@ -43,7 +43,7 @@ func setupLogger() {
TimeFormat: config.TimeDateFormat,
}))
app.Use(recover.New(recover.Config{}))
log.Infoln("fiber ready.")
log.Infoln("WebP Server Go ready.")
}

func init() {
Expand Down

0 comments on commit 24b96a9

Please sign in to comment.