-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathgenerate-filter-thumbnails.in
66 lines (56 loc) · 2.24 KB
/
generate-filter-thumbnails.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/env python3
import os
import sys
import inspect
from gi.repository import Gio
import gettext
gettext.install('endless_photos')
BUILDDIR = "@abs_top_builddir@"
SRCDIR = "@abs_top_srcdir@"
ASSET_RESOURCE_PATH = BUILDDIR + '/data/endless_photos.gresource';
THUMBNAIL_IMAGE_PATH = SRCDIR + '/data/images/thumbnail_original.jpg';
sys.path.append(SRCDIR)
from src.photos_model import PhotosModel
from src.resource_prefixes import *
GRESOURCE_HEAD="""
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix='""" + THUMBNAILS_RESOURCE_PREFIX + "'>"
GRESOURCE_BODY="""
<file>{file}</file>"""
GRESOURCE_TAIL="""
</gresource>
</gresources>"""
def create_thumbnail_files(model, api_name, root_name, output_dir):
model.revert_to_original()
thumbnail_files = []
seq = 0
for f in getattr(model, 'get_{}_names'.format(api_name))():
getattr(model, 'set_{}'.format(api_name))(f)
filename = '{}_{}.jpg'.format(root_name, seq)
model.save(os.path.join(output_dir, filename))
print(filename)
thumbnail_files.append(filename)
seq += 1
return thumbnail_files
if __name__ == '__main__':
asset_resource = Gio.Resource.load(ASSET_RESOURCE_PATH);
asset_resource._register();
model = PhotosModel(displayable=False)
thumbnail_files = []
output_dir = "data/images/thumbnails"
os.makedirs(output_dir, exist_ok=True)
model.open(THUMBNAIL_IMAGE_PATH)
thumbnail_files += create_thumbnail_files(model, 'filter', 'filter',
output_dir)
thumbnail_files += create_thumbnail_files(model, 'border', 'border',
output_dir)
thumbnail_files += create_thumbnail_files(model, 'distortion', 'distort',
output_dir)
thumbnail_files += create_thumbnail_files(model, 'blur', 'blur', output_dir)
gresource_filename = os.path.join(output_dir, 'thumbnails.gresource.xml')
with open(gresource_filename, 'w') as gresource_file:
gresource_file.write(GRESOURCE_HEAD)
for thumbnail_file in thumbnail_files:
gresource_file.write(GRESOURCE_BODY.format(file=thumbnail_file))
gresource_file.write(GRESOURCE_TAIL)