import cv2

# 入力フォルダ
input_tr = "./tmp4"
# 入力フォルダ
input_bg = "./tmp1"
# 出力フォルダ
output_path = "./outBalls"

# 入力フォルダからファイル名を取得
all_files = os.listdir(input_tr)
#特定の拡張子のファイルのみを取り出す
files = [i for i in all_files if i.endswith('.png') == True]

# 入力フォルダからファイル名を取得
all_files_bg = os.listdir(input_bg)
#特定の拡張子のファイルのみを取り出す
files_bg = [i for i in all_files_bg if i.endswith('.jpg') == True]

for file_name in files:
    png_image = cv2.imread(input_tr + '/' + file_name, cv2.IMREAD_UNCHANGED)  # アルファチャンネル込みで読み込む
    png_image = cv2.resize(png_image,None,fx=1.0,fy=1.0)

    # ファイル名抽出
    file_name_1 = file_name.split('.')[0]

    for file_name_bg in files_bg:
        # ファイル名抽出
        file_name_2 = file_name_bg.split('.')[0]
        frame_bg = cv2.imread(input_bg + '/' + file_name_2 + '.jpg')

        # 貼り付け先座標の設定。とりあえず左上に
        ###x1, y1, x2, y2 = 180, 30, png_image.shape[1]+180, png_image.shape[0]+30
        x1, y1, x2, y2 = 0, 0, png_image.shape[1]+0, png_image.shape[0]+0

        # 合成!
        frame_bg[y1:y2, x1:x2] = frame_bg[y1:y2, x1:x2] * (1 - png_image[:, :, 3:] / 255) + \
                      png_image[:, :, :3] * (png_image[:, :, 3:] / 255)

        cv2.imwrite(output_path + '/' + file_name_1 + '_' + file_name_2 + '.png', frame_bg)
