diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-04-07 16:49:34 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-04-15 17:22:55 +0200 |
commit | 33d5f805923eb50dfb309d024f6555c59a339846 (patch) | |
tree | cba8fde34849640bc09bd68d85c5d7a6ba042add /resources/image.go | |
parent | 509d39fa6ddbba106c127b7923a41b0dcaea9381 (diff) |
Add webp image encoding support
Fixes #5924
Diffstat (limited to 'resources/image.go')
-rw-r--r-- | resources/image.go | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/resources/image.go b/resources/image.go index 0396c2208..edf05639f 100644 --- a/resources/image.go +++ b/resources/image.go @@ -207,7 +207,7 @@ func (i *imageResource) Fill(spec string) (resource.Image, error) { } func (i *imageResource) Filter(filters ...interface{}) (resource.Image, error) { - conf := i.Proc.GetDefaultImageConfig("filter") + conf := images.GetDefaultImageConfig("filter", i.Proc.Cfg) var gfilters []gift.Filter @@ -299,28 +299,11 @@ func (i *imageResource) doWithImageConfig(conf images.ImageConfig, f func(src im } func (i *imageResource) decodeImageConfig(action, spec string) (images.ImageConfig, error) { - conf, err := images.DecodeImageConfig(action, spec, i.Proc.Cfg.Cfg) + conf, err := images.DecodeImageConfig(action, spec, i.Proc.Cfg, i.Format) if err != nil { return conf, err } - // default to the source format - if conf.TargetFormat == 0 { - conf.TargetFormat = i.Format - } - - if conf.Quality <= 0 && conf.TargetFormat.RequiresDefaultQuality() { - // We need a quality setting for all JPEGs - conf.Quality = i.Proc.Cfg.Cfg.Quality - } - - if conf.BgColor == nil && conf.TargetFormat != i.Format { - if i.Format.SupportsTransparency() && !conf.TargetFormat.SupportsTransparency() { - conf.BgColor = i.Proc.Cfg.BgColor - conf.BgColorStr = i.Proc.Cfg.Cfg.BgColor - } - } - return conf, nil } @@ -360,15 +343,16 @@ func (i *imageResource) setBasePath(conf images.ImageConfig) { func (i *imageResource) getImageMetaCacheTargetPath() string { const imageMetaVersionNumber = 1 // Increment to invalidate the meta cache - cfg := i.getSpec().imaging.Cfg.Cfg + cfgHash := i.getSpec().imaging.Cfg.CfgHash df := i.getResourcePaths().relTargetDirFile if fi := i.getFileInfo(); fi != nil { df.dir = filepath.Dir(fi.Meta().Path()) } p1, _ := helpers.FileAndExt(df.file) h, _ := i.hash() - idStr := helpers.HashString(h, i.size(), imageMetaVersionNumber, cfg) - return path.Join(df.dir, fmt.Sprintf("%s_%s.json", p1, idStr)) + idStr := helpers.HashString(h, i.size(), imageMetaVersionNumber, cfgHash) + p := path.Join(df.dir, fmt.Sprintf("%s_%s.json", p1, idStr)) + return p } func (i *imageResource) relTargetPathFromConfig(conf images.ImageConfig) dirFile { |