2 changed files with 39 additions and 2 deletions
@ -0,0 +1,35 @@
|
||||
#! /usr/bin/env python3 |
||||
import pathlib |
||||
import subprocess |
||||
import argparse |
||||
from multiprocessing import Pool |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
parser = argparse.ArgumentParser("Batch crop standard sized images") |
||||
parser.add_argument("indir", type=pathlib.Path) |
||||
parser.add_argument("outdir", type=pathlib.Path) |
||||
|
||||
args = parser.parse_args() |
||||
args.outdir.mkdir(exist_ok=True) |
||||
|
||||
def convert_file(infile: pathlib.Path): |
||||
print(f"Splitting {infile}") |
||||
newf = args.outdir.joinpath(infile.stem) |
||||
|
||||
subprocess.run( |
||||
[ |
||||
"convert", |
||||
str(infile), |
||||
"+repage", |
||||
"-crop", |
||||
"2x2@", |
||||
"+repage", |
||||
f"{newf}_%d.png", |
||||
] |
||||
) |
||||
|
||||
with Pool() as pool: |
||||
print("Splitting images") |
||||
for _ in pool.imap_unordered(convert_file, args.indir.iterdir(), chunksize=1): |
||||
pass |
Loading…
Reference in new issue