First commit

This commit is contained in:
Andros Fenollosa 2017-03-18 17:34:12 +01:00
commit 0bf39e2cd7
2 changed files with 64 additions and 0 deletions

22
README.md Normal file
View File

@ -0,0 +1,22 @@
Guetzli is a Google program to optimize JPEG images. Unfortunately, it only works one file at a time. With this script in Python you can do it recursively a whole folder.
# Install
Guetzli must be installed on your system. Follow the official instructions.
[Guetzli](https://github.com/google/guetzli)
and Python 3.
# Use
```bash
python guetzli-recursively.py [folder]
```
Example
```bash
python guetzli-recursively.py img
```

42
guetzli-recursively.py Normal file
View File

@ -0,0 +1,42 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from os import path, walk, remove, rename
from subprocess import call
from sys import argv
top_dir = argv[1]
TEMP_FILE = 'temp.jpg'
extensions = ('jpeg', 'jpg')
for dirpath, dirnames, files in walk(top_dir):
for name in files:
for extension in extensions:
if name.lower().endswith(extension):
# Get urls
url = path.join(dirpath, name)
print(url)
url_out = path.join(top_dir, TEMP_FILE)
# Remove temp image
try:
remove(url_out)
except:
pass
# Execute guetzli
call(['guetzli', url, url_out])
# Print your have saved
size_source = path.getsize(url)
try:
size_out = path.getsize(url_out)
except:
size_out = size_source
size_acurate = 100 * size_out / size_source
# Remove source
try:
remove(url)
except:
pass
if size_acurate < 100:
# Move temp to source
rename(url_out, url)
print('Save ' + str(100 - size_acurate) + '%')
else:
print('It is not necessary to optimize')