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.

  • jjffnn@feddit.dk
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 year ago

    As far as i know, for pillow to do what you want you would need to

    • Take a gif and split it in to frames
    • Edit each frame individually
    • Put frames back together as a gif
    • Repeat for every gif

      It can be done automagically like you want, but if you’re not interested in learning python maybe the XnConvert or ffmpeg comment above might be the way to go for ease of use.