I am assisting in making a wiki for an old game, and we ripped the avatar GIFs from the games shop and want to have a catalog of them. What I need to do is to crop all the borders which are identical from 3,170 GIFs and maybe make background transparent.

I haven’t used python in years, but I managed to cobble up something that almost works as a single image test, only issue is that it crops and outputs only the first frame:

from PIL import Image

if __name__ == "__main__":
    input_loc = "AvatarShopImages/80001.gif"
    output_loc = "Output/80001.gif"
    im = Image.open(input_loc)
    im = im.crop((4, 4, 94, 94))
    im.save(output_loc)

If it looks weird, it is because I copy/pasted some code and edited a lot out of it.

  • agitated_judge
    link
    fedilink
    arrow-up
    7
    ·
    1 year ago

    for i in $( ls *.gif ); do fmpeg -i $i -vf “crop=w:h:x:y” cropped_$i; done

    This runs on Linux/Mac or on WSL on windows Make sure there are no spaces in the filenames.