thumbnailer: allow passing 0 as cache size
This commit is contained in:
parent
f89726198b
commit
2791bc2cd7
@ -44,35 +44,43 @@ type Thumbnailer struct {
|
||||
afmt AspectFormat
|
||||
sfmt ScaleFormat
|
||||
|
||||
thumbCache *lru.Cache // threadsafe
|
||||
thumbCache *lru.Cache // threadsafe, might be nil
|
||||
}
|
||||
|
||||
func NewThumbnailer(Width, Height, MaxCacheSize int) *Thumbnailer {
|
||||
func NewThumbnailer(Width, Height int, MaxCacheSize uint) *Thumbnailer {
|
||||
return NewThumbnailerEx(Width, Height, MaxCacheSize, OUTPUT__DEFAULT, ASPECT__DEFAULT, SCALEFMT__DEFAULT)
|
||||
}
|
||||
|
||||
func NewThumbnailerEx(Width, Height, MaxCacheSize int, of OutputFormat, af AspectFormat, sf ScaleFormat) *Thumbnailer {
|
||||
thumbCache, err := lru.New(MaxCacheSize)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
func NewThumbnailerEx(Width, Height int, MaxCacheSize uint, of OutputFormat, af AspectFormat, sf ScaleFormat) *Thumbnailer {
|
||||
|
||||
return &Thumbnailer{
|
||||
ret := &Thumbnailer{
|
||||
width: Width,
|
||||
height: Height,
|
||||
ofmt: of,
|
||||
afmt: af,
|
||||
sfmt: sf,
|
||||
thumbCache: thumbCache,
|
||||
thumbCache: nil,
|
||||
}
|
||||
|
||||
if MaxCacheSize > 0 {
|
||||
thumbCache, err := lru.New(int(MaxCacheSize))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
ret.thumbCache = thumbCache
|
||||
}
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
func (this *Thumbnailer) RenderFile(absPath string) ([]byte, error) {
|
||||
|
||||
if this.thumbCache != nil {
|
||||
thumb, ok := this.thumbCache.Get(absPath)
|
||||
if ok {
|
||||
return thumb.([]byte), nil
|
||||
}
|
||||
}
|
||||
|
||||
// Add to cache
|
||||
thumb, err := this.RenderFile_NoCache(absPath)
|
||||
@ -80,8 +88,11 @@ func (this *Thumbnailer) RenderFile(absPath string) ([]byte, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if this.thumbCache != nil {
|
||||
this.thumbCache.Add(absPath, thumb)
|
||||
return thumb.([]byte), nil
|
||||
}
|
||||
|
||||
return thumb, nil
|
||||
}
|
||||
|
||||
func FiletypeSupported(ext string) bool {
|
||||
|
Loading…
Reference in New Issue
Block a user