1
0
mirror of https://github.com/mitb-archive/filebot synced 2024-12-22 07:48:52 -05:00

Experiment with artwork thumbnail support

This commit is contained in:
Reinhard Pointner 2019-05-16 19:55:10 +07:00
parent a05ab703ff
commit 889d411c44

View File

@ -3,6 +3,10 @@
import static org.apache.commons.io.FileUtils.*
scaleFactor = [1, 2]
thumbnailSize = [48, 48]
void ls(f) {
if (f.exists()) {
log.info "$f (${byteCountToDisplaySize(f.length())})"
@ -17,20 +21,26 @@ File getOriginalPath(db, id) {
}
File getThumbnailPath(db, id) {
return _args.outputPath.resolve("images/${db}/thumb/poster/${id}.png")
File getThumbnailPath(db, id, scale) {
def n = id as String
if (scale != 1) {
n += '@' + scale + 'x'
}
return _args.outputPath.resolve("images/${db}/thumb/poster/${n}.png")
}
void createThumbnail(original, thumb) {
void createThumbnail(original, thumb, scale) {
thumb.dir.mkdirs()
execute 'convert', '-strip', original, '-thumbnail', '48x48', '-gravity', 'center', '-background', 'transparent', '-extent', '48x48', 'PNG8:' + thumb
def size = thumbnailSize*.multiply(scale).join('x')
execute 'convert', '-strip', original, '-thumbnail', size, '-gravity', 'center', '-background', 'transparent', '-extent', size, 'PNG8:' + thumb
}
void createIndexFile(db) {
def indexFile = _args.outputPath.resolve("images/${db}/thumb/poster/index.txt")
def index = indexFile.dir.listFiles{ it.image }.collect{ it.nameWithoutExtension as int }.toSorted()
def index = indexFile.dir.listFiles{ it.name =~ /\d+/ }.collect{ it.nameWithoutExtension as int }.toSorted()
index.join('\n').saveAs(indexFile)
execute 'xz', indexFile, '--force', '--keep'
@ -46,8 +56,9 @@ void build(ids, section, db, query) {
def files = []
ids.each{ id ->
scaleFactor.each { scale ->
def original = getOriginalPath(section, id)
def thumb = getThumbnailPath(section, id)
def thumb = getThumbnailPath(section, id, scale)
if (thumb.exists()) {
log.finest "[SKIP] $id"
@ -91,12 +102,13 @@ void build(ids, section, db, query) {
}
if (original.length() > 0 && !thumb.exists()) {
createThumbnail(original, thumb)
createThumbnail(original, thumb, scale)
files << thumb
ls thumb
}
}
}
if (files) {
createIndexFile(section)