def legofy_gif(base_image, brick_image, output_path, size, palette_mode, dither): '''Alternative function that legofies animated gifs, makes use of images2gif - uses numpy!''' im = base_image # Read original image duration original_duration = im.info['duration'] # Split image into single frames frames = [frame.copy() for frame in ImageSequence.Iterator(im)] # Create container for converted images frames_converted = [] print("Number of frames to convert: " + str(len(frames))) # Iterate through single frames for i, frame in enumerate(frames, 1): print("Converting frame number " + str(i)) new_size = get_new_size(frame, brick_image, size) frame.thumbnail(new_size, Image.ANTIALIAS) if palette_mode: palette = get_lego_palette(palette_mode) frame = apply_thumbnail_effects(frame, palette, dither) new_frame = make_lego_image(frame, brick_image) frames_converted.append(new_frame) # Make use of images to gif function images2gif.writeGif(output_path, frames_converted, duration=original_duration/1000.0, dither=0, subRectangles=False)
def legofy_gif(base_image, brick_image, output_path, size, palette_mode, dither): '''Alternative function that legofies animated gifs, makes use of images2gif - uses numpy!''' im = base_image # Read original image duration original_duration = im.info['duration'] # Split image into single frames frames = [frame.copy() for frame in ImageSequence.Iterator(im)] # Create container for converted images frames_converted = [] print(("Number of frames to convert: " + str(len(frames)))) # Iterate through single frames for i, frame in enumerate(frames, 1): print(("Converting frame number " + str(i))) new_size = get_new_size(frame, brick_image, size) frame.thumbnail(new_size, Image.ANTIALIAS) if palette_mode: palette = get_lego_palette(palette_mode) frame = apply_thumbnail_effects(frame, palette, dither) new_frame = make_lego_image(frame, brick_image) frames_converted.append(new_frame) # Make use of images to gif function images2gif.writeGif(output_path, frames_converted, duration=original_duration / 1000.0, dither=0, subRectangles=False)