summaryrefslogtreecommitdiffstats
path: root/resources/image.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-04-07 16:49:34 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-04-15 17:22:55 +0200
commit33d5f805923eb50dfb309d024f6555c59a339846 (patch)
treecba8fde34849640bc09bd68d85c5d7a6ba042add /resources/image.go
parent509d39fa6ddbba106c127b7923a41b0dcaea9381 (diff)
Add webp image encoding support
Fixes #5924
Diffstat (limited to 'resources/image.go')
-rw-r--r--resources/image.go28
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 {