示例#1
0
def create_mtg_gif(name, id, border):
    if border == 'm':  # Modern (post-8th Ed)
        card_upper_corner = (19, 38)
        gif_width = 202 - card_upper_corner[0]
        gif_height = 172 - card_upper_corner[1]
    elif border == 'c':  # Current (post-Magic 2015)
        card_upper_corner = (17, 34)
        gif_width = 204 - card_upper_corner[0]
        gif_height = 173 - card_upper_corner[1]
    else:  # Old (pre-8th Ed)
        card_upper_corner = (25, 30)
        gif_width = 196 - card_upper_corner[0]
        gif_height = 168 - card_upper_corner[1]

    mtg_card = Image.open(BytesIO(requests.get(get_mtg_image(id)).content))
    mtg_card = ImageClip(np.asarray(mtg_card)).resize((222, 310))

    get_giphy_gif(name)
    giphy_gif = (VideoFileClip(
        'giphy_gif.mp4',
        target_resolution=(gif_height, gif_width)).set_pos(card_upper_corner))

    if giphy_gif.duration < 2:
        giphy_gif = giphy_gif.fx(loop, n=1 + int(2 // giphy_gif.duration))

    mtg_gif = CompositeVideoClip([mtg_card, giphy_gif])
    mtg_gif = mtg_gif.set_start(0).set_duration(giphy_gif.duration)
    # mtg_gif.write_gif("mtg_gif.gif")
    mtg_gif.write_videofile("mtg_gif.mp4",
                            codec='libx264',
                            bitrate=str(np.power(10, 7)),
                            verbose=False,
                            progress_bar=False,
                            audio=False,
                            ffmpeg_params=['-pix_fmt', 'yuv420p'])
示例#2
0
frame = cv2.imread(os.path.join(image_folder, images[0]))

ymi, yma = 20, -40
frame = frame[ymi:yma, :]

height, width, layers = frame.shape

video = cv2.VideoWriter('rsrc/IDA-BadApple.mp4',
                        fourcc=cv2.VideoWriter_fourcc(*'MP4V'),
                        frameSize=(width, height),
                        fps=15 * 2)

for idx, image in enumerate(images):
    frame = cv2.imread(os.path.join(image_folder, image))[ymi:yma, :]
    video.write(frame)
    video.write(frame)
    print("Frame %s\r" % image, end="")

cv2.destroyAllWindows()
video.release()

from moviepy.editor import VideoFileClip, CompositeVideoClip

clip0 = VideoFileClip("../BadApple/gen/rsrc/BadApple.mp4")
clip1 = VideoFileClip("rsrc/IDA-Start.mp4")
clip2 = VideoFileClip("rsrc/IDA-BadApple.mp4")

composite = CompositeVideoClip(
    [clip2, clip0.resize(.5).set_position((65, 700))])
final_clip = CompositeVideoClip([clip1, composite.set_start(12)])
final_clip.write_videofile("final.mp4", fps=30)