render_movie.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:eclipse2017 作者: google 项目源码 文件源码
def stamp_and_number_image(directory, rescaled_directory, map_directory, data_directory, output_directory, blah):
    try:
        t = (RES_Y, RES_X, 4)

        i = blah['i']
        fname = blah['fname']
        poly = blah['poly']

        image = get_rescaled(fname, rescaled_directory)

        map_fname = os.path.join(map_directory, "map.%05d.png" % i)
        map_pad = np.zeros(t, dtype=np.uint8)
        map_ = cv2.imread(map_fname, cv2.IMREAD_UNCHANGED)
        s = map_.shape
        map_pad[t[0]-s[0]-40:t[0]-40, t[1]-s[1]-40:t[1]-40] = map_


        image = cv2.addWeighted(map_pad, 1, image, 1, 0)

        berkeley_logo_pad = np.zeros(t, dtype=np.uint8)
        berkeley_logo = cv2.imread(os.path.join(data_directory, "logo_footer_berkeley.png"), cv2.IMREAD_UNCHANGED)
        s = berkeley_logo.shape
        berkeley_logo_pad[40:40+s[0], 1700:1700+s[1]] = berkeley_logo
        image = cv2.addWeighted(berkeley_logo_pad, 1, image, 1, 0)

        google_logo_pad = np.zeros(t, dtype=np.uint8)
        google_logo = cv2.imread(os.path.join(data_directory, "logo_footer_google.png"), cv2.IMREAD_UNCHANGED)
        s = google_logo.shape
        google_logo_pad[40:40+s[0], 1800:1800+s[1]] = google_logo
        image = cv2.addWeighted(google_logo_pad, 1, image, 1, 0)

        megamovie_logo_pad = np.zeros(t, dtype=np.uint8)
        megamovie_logo = cv2.imread(os.path.join(data_directory, "EclipseMovie_logo_crop.png"), cv2.IMREAD_UNCHANGED)
        s = megamovie_logo.shape
        megamovie_logo_pad[40:40+s[0], 40:40+s[1]] = megamovie_logo
        image = cv2.addWeighted(megamovie_logo_pad, 1, image, 1, 0)

        im = Image.new("RGBA", (image.shape[1], image.shape[0]), (0,0,0,0))
        draw = ImageDraw.Draw(im)
        font = ImageFont.truetype("ProductSans-Regular.ttf", 39)

        txt = "Eclipse Megamovie 2017"
        draw.text((140, 45), txt, (255,255,255,255), font=font)
        tfmt = poly[2].strftime("%H:%M:%S")
        txt = "Time at Umbral Center: %s" % tfmt
        draw.text((1350, 1040), txt, (255,255,255,255), font=font)
        # txt = "Frame #%d %s" % (i, fname)
        # draw.text((20, 1040), txt, (255,255,255,255), font=font)
        x = cv2.cvtColor(np.asarray(im), cv2.COLOR_RGB2BGR)
        b_channel, g_channel, r_channel = cv2.split(x)
        alpha_channel = np.ones(b_channel.shape, dtype=b_channel.dtype) * 255
        x = cv2.merge((b_channel, g_channel, r_channel, alpha_channel))
        image = cv2.addWeighted( x, 1, image, 1, 0.0)

        new_fname = os.path.join(output_directory, "%05d.png" % i)
        cv2.imwrite(new_fname, image)
        return i, fname, True

    except Exception as e:
        traceback.print_exc(limit=50)
        return i, fname, False
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号