Added multiprocessing for bulk image conversion
This commit is contained in:
parent
a1ce05f39b
commit
76579920ef
1 changed files with 27 additions and 22 deletions
49
pixelterm
49
pixelterm
|
|
@ -1,31 +1,36 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import os, sys, argparse, os.path, json, pixelterm
|
||||
import os, sys, argparse, os.path, json
|
||||
import pixelterm
|
||||
from multiprocessing import Pool
|
||||
from PIL import Image, PngImagePlugin
|
||||
|
||||
def convert(f):
|
||||
img = Image.open(f).convert("RGBA")
|
||||
if args.output_dir:
|
||||
print(f)
|
||||
foo, _, _ = f.rpartition('.png')
|
||||
output = os.path.join(args.output_dir, os.path.basename(foo)+'.pony')
|
||||
metadata = json.loads(img.info.get('pixelterm-metadata'))
|
||||
comment = metadata.get('_comment')
|
||||
if comment is not None:
|
||||
del metadata['_comment']
|
||||
comment = '\n'+comment
|
||||
else:
|
||||
comment = ''
|
||||
metadataarea = '$$$\n' +\
|
||||
'\n'.join([ '\n'.join([ k.upper() + ': ' + v for v in metadata[k] ]) for k in sorted(metadata.keys()) ]) +\
|
||||
comment + '\n$$$\n'
|
||||
with open(output, 'w') as of:
|
||||
of.write(metadataarea)
|
||||
of.write(pixelterm.termify_pixels(img))
|
||||
else:
|
||||
print(pixelterm.termify_pixels(img))
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser(description='Render pixel images on 256-color ANSI terminals')
|
||||
parser.add_argument('image', type=str, nargs='*')
|
||||
parser.add_argument('-d', '--output-dir', type=str, help='Output directory (if not given, output to stdout)')
|
||||
args = parser.parse_args()
|
||||
for f in args.image:
|
||||
img = Image.open(f).convert("RGBA")
|
||||
if args.output_dir:
|
||||
print(f)
|
||||
foo, _, _ = f.rpartition('.png')
|
||||
output = os.path.join(args.output_dir, os.path.basename(foo)+'.pony')
|
||||
metadata = json.loads(img.info.get('pixelterm-metadata'))
|
||||
comment = metadata.get('_comment')
|
||||
if comment is not None:
|
||||
del metadata['_comment']
|
||||
comment = '\n'+comment
|
||||
else:
|
||||
comment = ''
|
||||
metadataarea = '$$$\n' +\
|
||||
'\n'.join([ '\n'.join([ k.upper() + ': ' + v for v in metadata[k] ]) for k in sorted(metadata.keys()) ]) +\
|
||||
comment + '\n$$$\n'
|
||||
with open(output, 'w') as of:
|
||||
of.write(metadataarea)
|
||||
of.write(pixelterm.termify_pixels(img))
|
||||
else:
|
||||
print(pixelterm.termify_pixels(img))
|
||||
p = Pool()
|
||||
p.map(convert, args.image)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue