Pastery

gd bad apple pv +

  1import random  2from PIL import Image  3  4header = ('kS38,'  5          '1_16_2_16_3_16_11_255_12_255_13_255_4_-1_6_1000_7_1_15_1_18_0_8_1|'  # bg  6          '1_16_2_16_3_16_11_255_12_255_13_255_4_-1_6_1001_7_1_15_1_18_0_8_1|'  # g  7          '1_16_2_16_3_16_11_255_12_255_13_255_4_-1_6_1009_7_1_15_1_18_0_8_1|'  # g2  8          '1_255_2_255_3_255_11_255_12_255_13_255_4_-1_6_1002_5_1_7_1_15_1_18_0_8_1|'  # line  9          '1_255_2_255_3_255_11_255_12_255_13_255_4_-1_6_1005_5_1_7_1_15_1_18_0_8_1|'  # obj 10          '1_0_2_200_3_255_11_255_12_255_13_255_4_-1_6_1006_5_1_7_1_15_1_18_0_8_1|,'  # 3dl 11          'kA13,0,kA15,0,kA16,0,' 12          'kA14,0.00~0~1.00~0~2.00~0~3.00~0~4.00~0~5.00~0~6.00~0~7.00~0~8.00~0~9.00~0~10.00~0~11.00~0~12.00~0~13.00~0~14.00~0~15.00~0~16.00~0~17.00~0~18.00~0~19.00~0~20.00~0~21.00~0~22.00~0~23.00~0~24.00~0~25.00~0~26.00~0~27.00~0~28.00~0~29.00~0~30.00~0~31.00~0~32.00~0~33.00~0~34.00~0~35.00~0~36.00~0~37.00~0~38.00~0~39.00~0~40.00~0~41.00~0~42.00~0~43.00~0~44.00~0~45.00~0~46.00~0~47.00~0~48.00~0~49.00~0~50.00~0~51.00~0~52.00~0~53.00~0~54.00~0~55.00~0~56.00~0~57.00~0~58.00~0~59.00~0~60.00~0~61.00~0~62.00~0~63.00~0~64.00~0~65.00~0~66.00~0~67.00~0~68.00~0~69.00~0~70.00~0~71.00~0~72.00~0~73.00~0~74.00~0~75.00~0~76.00~0~77.00~0~78.00~0~79.00~0~80.00~0~81.00~0~82.00~0~83.00~0~84.00~0~85.00~0~86.00~0~87.00~0~88.00~0~89.00~0~90.00~0~91.00~0~92.00~0~93.00~0~94.00~0~95.00~0~96.00~0~97.00~0~98.00~0~99.00~0~100.00~0~101.00~0~102.00~0~103.00~0~104.00~0~105.00~0~106.00~0~107.00~0~108.00~0~109.00~0~110.00~0~111.00~0~112.00~0~113.00~0~114.00~0~115.00~0~116.00~0~117.00~0~118.00~0~119.00~0~120.00~0~121.00~0~122.00~0~123.00~0~124.00~0~125.00~0~126.00~0~127.00~0~128.00~0~129.00~0~130.00~0~131.00~0~132.00~0~133.00~0~134.00~0~135.00~0~136.00~0~137.00~0~138.00~0~139.00~0~140.00~0~141.00~0~142.00~0~143.00~0~144.00~0~145.00~0~146.00~0~147.00~0~148.00~0~149.00~0~150.00~0~,' 13          'kA6,13,kA7,0,kA17,0,kA18,0,kS39,0,' 14          'kA2,1,'  # mode 15          'kA3,0,kA8,0,' 16          'kA4,3,'  # speed 17          'kA9,0,kA10,0,kA11,0;') 18 19 20def createBg(x, y, scale, group, zorder=-5, editorl=0, zlayer=5, big=False): 21    bg = { 22        1: 917,  # obj id 23        2: x,  # x pos 1.875 + k * 3.75 24        3: y,  # y pos 25        32: scale,  # scale 26        57: group,  # groups "1.2.3.4" 27        25: zorder, 28        20: editorl, 29        24: zlayer,  # mid-3 top-5 30        21: 1,  # dont fade 31        64: 1 32    } 33    if big == True: 34        bg[1] = 916 35    ret = [] 36    for k, v in bg.items(): 37        ret.append(str(k)) 38        ret.append(str(v)) 39    return ','.join(ret) + ';' 40 41 42def createAlpha(x, y, scale, target, fadeTime, opacity): 43    alpha = { 44        1: 1007,  # obj id 45        2: x,  # x pos 46        3: y,  # y pos 47        32: scale,  # scale 48        36: 1, 49        51: target,  # target group 50        10: fadeTime,  # fade time 51        35: f'{opacity:.3f}'  # opacity 52    } 53    ret = [] 54    for k, v in alpha.items(): 55        ret.append(str(k)) 56        ret.append(str(v)) 57    return ','.join(ret) + ';' 58 59 60def createToggle(x, y, scale, target, activate): 61    toggle = { 62        1: 1049,  # obj id 63        2: x,  # x pos 64        3: y,  # y pos 65        32: scale,  # scale 66        36: 1, 67        51: target,  # target group 68        56: activate,  # activate 69    } 70    ret = [] 71    for k, v in toggle.items(): 72        ret.append(str(k)) 73        ret.append(str(v)) 74    return ','.join(ret) + ';' 75 76 77def createMove(x, y, scale, target, movex, movey, time, easing, lockpx=0): 78    move = { 79        1: 901,  # obj id 80        2: x,  # x pos 81        3: y,  # y pos 82        32: scale,  # scale 83        36: 1, 84        51: target,  # target group 85        28: movex,  # movex 86        29: movey, 87        10: time, 88        30: easing, 89        58: lockpx, 90        # 59: lockpy 91        # 25: zorder, 92        # 20: editorl, 93        # 24: zlayer # mid-3 top-5 94    } 95    ret = [] 96    for k, v in move.items(): 97        ret.append(str(k)) 98        ret.append(str(v)) 99    return ','.join(ret) + ';'100101102if __name__ == '__main__':103    print(header, end='')104    im = Image.open('images80/video_000000.png')105    im = im.convert('L')106    imload = im.load()107    # im.show()108    w, h = im.size  # 104x78109110    for y in range(h):111        for x in range(w):112            xpos = 1.875 + 3.75 * x + 15 * 5113            ypos = (1.875 + 3.75 * h) - (1.875 + 3.75 * y) + \114                10 * 30 / 2 - (1.875 + 3.75 * h) / 2115            g = y * w + x + 100116            print(createBg(xpos, ypos, 0.5, str(g) + '.1'), end='')117118    print(createMove(195, 500, 0.5, 1, 0, 0, 999, 0, 1), end='')119120    cnt = 0121    for y in range(h):122        for x in range(w):123            xpos = 0124            ypos = 500 + 5 * cnt125            g = y * w + x + 100126            print(createToggle(xpos, ypos, scale=0.5,127                               target=g, activate=0), end='')128            cnt += 1129130    for frame in range(0, 6571):  # 6571131        prevload = imload132        im = Image.open(f'images80/video_{frame:06}.png')133        im = im.convert('L')134        imload = im.load()135        cnt = 0136        xpos = 15.6 * frame137        for y in range(h):138            for x in range(w):139                ypos = 500 + 5 * cnt140                g = y * w + x + 100141                if prevload[x, y] <= 128 and imload[x, y] > 128:142                    print(createToggle(xpos, ypos, scale=0.5,143                                       target=g, activate=1), end='')144                    cnt += 1145                elif prevload[x, y] > 128 and imload[x, y] <= 128:146                    print(createToggle(xpos, ypos, scale=0.5,147                                       target=g, activate=0), end='')148                    cnt += 1
New paste