@@ -1154,3 +1154,297 @@ func dun(cc *context, value ...string) (string, error) {
11541154 }
11551155 return "file:///" + name , writer .SaveGIF2Path (name , img .MergeGif (7 , dun ))
11561156}
1157+
1158+ // push 滚高清重置版 过渡
1159+ func push (cc * context , value ... string ) (string , error ) {
1160+ _ = value
1161+ var wg sync.WaitGroup
1162+ var err error
1163+ var m sync.Mutex
1164+ piclen := 16
1165+ name := cc .usrdir + "push.gif"
1166+ c := dlrange ("push" , piclen , & wg , func (e error ) {
1167+ m .Lock ()
1168+ err = e
1169+ m .Unlock ()
1170+ })
1171+ if err != nil {
1172+ return "" , err
1173+ }
1174+ wg .Wait ()
1175+ tou , err := cc .getLogo (0 , 0 )
1176+ if err != nil {
1177+ return "" , err
1178+ }
1179+ imgs , err := loadFirstFrames (c , piclen )
1180+ if err != nil {
1181+ return "" , err
1182+ }
1183+ push := make ([]* image.NRGBA , piclen )
1184+ for i := 0 ; i < piclen ; i ++ {
1185+ push [i ] = imgs [i ].InsertUpC (img .Rotate (tou , float64 (- 22 * i ), 280 , 280 ).Im , 0 , 0 , 523 , 291 ).Im
1186+ }
1187+ return "file:///" + name , writer .SaveGIF2Path (name , img .MergeGif (7 , push ))
1188+ }
1189+
1190+ // peng 砰
1191+ func peng (cc * context , value ... string ) (string , error ) {
1192+ _ = value
1193+ var wg sync.WaitGroup
1194+ var err error
1195+ var m sync.Mutex
1196+ name := cc .usrdir + "peng.gif"
1197+ c := dlrange ("peng" , 25 , & wg , func (e error ) {
1198+ m .Lock ()
1199+ err = e
1200+ m .Unlock ()
1201+ })
1202+ if err != nil {
1203+ return "" , err
1204+ }
1205+ tou , err := cc .getLogo (100 , 100 )
1206+ if err != nil {
1207+ return "" , err
1208+ }
1209+ m1 := img .Rotate (tou , 1 , 80 , 80 )
1210+ m2 := img .Rotate (tou , 30 , 80 , 80 )
1211+ m3 := img .Rotate (tou , 45 , 85 , 85 )
1212+ m4 := img .Rotate (tou , 90 , 80 , 80 )
1213+
1214+ wg .Wait ()
1215+ if err != nil {
1216+ return "" , err
1217+ }
1218+ imgs , err := loadFirstFrames (c , 25 )
1219+ if err != nil {
1220+ return "" , err
1221+ }
1222+ peng := []* image.NRGBA {
1223+ imgs [0 ].Im ,
1224+ imgs [1 ].Im ,
1225+ imgs [2 ].Im ,
1226+ imgs [3 ].Im ,
1227+ imgs [4 ].Im ,
1228+ imgs [5 ].Im ,
1229+ imgs [6 ].Im ,
1230+ imgs [7 ].InsertUp (m1 .Im , 0 , 0 , 205 , 80 ).Im ,
1231+ imgs [8 ].InsertUp (m1 .Im , 0 , 0 , 205 , 80 ).Im ,
1232+ imgs [9 ].InsertUp (m1 .Im , 0 , 0 , 205 , 80 ).Im ,
1233+ imgs [10 ].InsertUp (m1 .Im , 0 , 0 , 205 , 80 ).Im ,
1234+ imgs [11 ].InsertUp (m1 .Im , 0 , 0 , 205 , 80 ).Im ,
1235+ imgs [12 ].InsertUp (m1 .Im , 0 , 0 , 205 , 80 ).Im ,
1236+ imgs [13 ].InsertUp (m1 .Im , 0 , 0 , 205 , 80 ).Im ,
1237+ imgs [14 ].InsertUp (m1 .Im , 0 , 0 , 205 , 80 ).Im ,
1238+ imgs [15 ].InsertUp (m1 .Im , 0 , 0 , 205 , 80 ).Im ,
1239+ imgs [16 ].InsertUp (m1 .Im , 0 , 0 , 200 , 80 ).Im ,
1240+ imgs [17 ].InsertUp (m2 .Im , 0 , 0 , 169 , 65 ).Im ,
1241+ imgs [18 ].InsertUp (m2 .Im , 0 , 0 , 160 , 69 ).Im ,
1242+ imgs [19 ].InsertUp (m3 .Im , 0 , 0 , 113 , 90 ).Im ,
1243+ imgs [20 ].InsertUp (m4 .Im , 0 , 0 , 89 , 159 ).Im ,
1244+ imgs [21 ].InsertUp (m4 .Im , 0 , 0 , 89 , 159 ).Im ,
1245+ imgs [22 ].InsertUp (m4 .Im , 0 , 0 , 86 , 160 ).Im ,
1246+ imgs [23 ].InsertUp (m4 .Im , 0 , 0 , 89 , 159 ).Im ,
1247+ imgs [24 ].InsertUp (m4 .Im , 0 , 0 , 86 , 160 ).Im ,
1248+ }
1249+ return "file:///" + name , writer .SaveGIF2Path (name , img .MergeGif (8 , peng ))
1250+ }
1251+
1252+ // klee 可莉吃
1253+ func klee (cc * context , value ... string ) (string , error ) {
1254+ _ = value
1255+ var wg sync.WaitGroup
1256+ var err error
1257+ var m sync.Mutex
1258+ piclen := 31
1259+ name := cc .usrdir + "klee.gif"
1260+ c := dlrange ("klee" , piclen , & wg , func (e error ) {
1261+ m .Lock ()
1262+ err = e
1263+ m .Unlock ()
1264+ })
1265+ if err != nil {
1266+ return "" , err
1267+ }
1268+ wg .Wait ()
1269+ im , err := img .LoadFirstFrame (cc .headimgsdir [0 ], 82 , 83 )
1270+ if err != nil {
1271+ return "" , err
1272+ }
1273+ locs := [][]int {{0 , 174 }, {0 , 174 }, {0 , 174 }, {0 , 174 }, {0 , 174 }, {12 , 160 }, {19 , 152 }, {23 , 148 }, {26 , 145 }, {32 , 140 }, {37 , 136 }, {42 , 131 }, {49 , 127 }, {70 , 126 }, {88 , 128 }, {- 30 , 210 }, {- 19 , 207 }, {- 14 , 200 }, {- 10 , 188 }, {- 7 , 179 }, {- 3 , 170 }, {- 3 , 175 }, {- 1 , 174 }, {0 , 174 }, {0 , 174 }, {0 , 174 }, {0 , 174 }, {0 , 174 }, {0 , 174 }, {0 , 174 }, {0 , 174 }}
1274+ imgs , err := loadFirstFrames (c , piclen )
1275+ if err != nil {
1276+ return "" , err
1277+ }
1278+ klee := make ([]* image.NRGBA , piclen )
1279+ for i := 0 ; i < piclen ; i ++ {
1280+ klee [i ] = imgs [i ].InsertBottom (im .Im , 0 , 0 , locs [i ][0 ], locs [i ][1 ]).Im
1281+ }
1282+ return "file:///" + name , writer .SaveGIF2Path (name , img .MergeGif (7 , klee ))
1283+ }
1284+
1285+ // hutaoken 胡桃啃
1286+ func hutaoken (cc * context , value ... string ) (string , error ) {
1287+ _ = value
1288+ var wg sync.WaitGroup
1289+ var err error
1290+ var m sync.Mutex
1291+ name := cc .usrdir + "hutaoken.gif"
1292+ c := dlrange ("hutaoken" , 2 , & wg , func (e error ) {
1293+ m .Lock ()
1294+ err = e
1295+ m .Unlock ()
1296+ })
1297+ if err != nil {
1298+ return "" , err
1299+ }
1300+ tou , err := cc .getLogo (55 , 55 )
1301+ if err != nil {
1302+ return "" , err
1303+ }
1304+ wg .Wait ()
1305+ if err != nil {
1306+ return "" , err
1307+ }
1308+ imgs , err := loadFirstFrames (c , 2 )
1309+ if err != nil {
1310+ return "" , err
1311+ }
1312+ hutaoken := []* image.NRGBA {
1313+ imgs [0 ].InsertBottom (tou , 98 , 101 , 108 , 234 ).Im ,
1314+ imgs [1 ].InsertBottom (tou , 96 , 100 , 108 , 237 ).Im ,
1315+ }
1316+ return "file:///" + name , writer .SaveGIF2Path (name , img .MergeGif (8 , hutaoken ))
1317+ }
1318+
1319+ // lick 2舔
1320+ func lick (cc * context , value ... string ) (string , error ) {
1321+ _ = value
1322+ var wg sync.WaitGroup
1323+ var err error
1324+ var m sync.Mutex
1325+ name := cc .usrdir + "lick.gif"
1326+ c := dlrange ("lick" , 2 , & wg , func (e error ) {
1327+ m .Lock ()
1328+ err = e
1329+ m .Unlock ()
1330+ })
1331+ if err != nil {
1332+ return "" , err
1333+ }
1334+ tou , err := cc .getLogo (100 , 100 )
1335+ if err != nil {
1336+ return "" , err
1337+ }
1338+ imgs , err := loadFirstFrames (c , 2 )
1339+ if err != nil {
1340+ return "" , err
1341+ }
1342+ lick := []* image.NRGBA {
1343+ imgs [0 ].InsertUp (tou , 44 , 44 , 10 , 138 ).Im ,
1344+ imgs [1 ].InsertUp (tou , 44 , 44 , 10 , 138 ).Im ,
1345+ }
1346+ return "file:///" + name , writer .SaveGIF2Path (name , img .MergeGif (8 , lick ))
1347+ }
1348+
1349+ // tiqiu 踢球
1350+ func tiqiu (cc * context , value ... string ) (string , error ) {
1351+ _ = value
1352+ var wg sync.WaitGroup
1353+ var err error
1354+ var m sync.Mutex
1355+ piclen := 15
1356+ name := cc .usrdir + "tiqiu.gif"
1357+ c := dlrange ("tiqiu" , piclen , & wg , func (e error ) {
1358+ m .Lock ()
1359+ err = e
1360+ m .Unlock ()
1361+ })
1362+ if err != nil {
1363+ return "" , err
1364+ }
1365+ wg .Wait ()
1366+ tou , err := cc .getLogo (78 , 78 )
1367+ if err != nil {
1368+ return "" , err
1369+ }
1370+ locs := [][]int {{58 , 137 }, {57 , 118 }, {56 , 100 }, {53 , 114 }, {51 , 127 }, {49 , 140 }, {48 , 113 }, {48 , 86 }, {48 , 58 }, {49 , 98 }, {51 , 137 }, {52 , 177 }, {53 , 170 }, {56 , 182 }, {59 , 154 }}
1371+ imgs , err := loadFirstFrames (c , piclen )
1372+ if err != nil {
1373+ return "" , err
1374+ }
1375+ tiqiu := make ([]* image.NRGBA , piclen )
1376+ for i := 0 ; i < piclen ; i ++ {
1377+ tiqiu [i ] = imgs [i ].InsertUpC (img .Rotate (tou , float64 (- 24 * i ), 0 , 0 ).Im , 0 , 0 , locs [i ][0 ]+ 38 , locs [i ][1 ]+ 38 ).Im
1378+ }
1379+ return "file:///" + name , writer .SaveGIF2Path (name , img .MergeGif (7 , tiqiu ))
1380+ }
1381+
1382+ // cai 踩
1383+ func cai (cc * context , value ... string ) (string , error ) {
1384+ _ = value
1385+ var wg sync.WaitGroup
1386+ var err error
1387+ var m sync.Mutex
1388+ name := cc .usrdir + "cai.gif"
1389+ c := dlrange ("cai" , 5 , & wg , func (e error ) {
1390+ m .Lock ()
1391+ err = e
1392+ m .Unlock ()
1393+ })
1394+ if err != nil {
1395+ return "" , err
1396+ }
1397+ tou , err := cc .getLogo (0 , 0 )
1398+ if err != nil {
1399+ return "" , err
1400+ }
1401+ wg .Wait ()
1402+ if err != nil {
1403+ return "" , err
1404+ }
1405+ imgs , err := loadFirstFrames (c , 5 )
1406+ if err != nil {
1407+ return "" , err
1408+ }
1409+ m1 := img .Rotate (tou , - 20 , 130 , 80 )
1410+ cai := []* image.NRGBA {
1411+ imgs [0 ].InsertBottom (m1 .Im , 123 , 105 , 39 , 188 ).Im ,
1412+ imgs [1 ].InsertBottom (m1 .Im , 123 , 105 , 39 , 188 ).Im ,
1413+ imgs [2 ].InsertBottom (tou , 90 , 71 , 50 , 209 ).Im ,
1414+ imgs [3 ].InsertBottom (tou , 85 , 76 , 52 , 203 ).Im ,
1415+ imgs [4 ].InsertBottom (tou , 88 , 82 , 49 , 198 ).Im ,
1416+ }
1417+ return "file:///" + name , writer .SaveGIF2Path (name , img .MergeGif (7 , cai ))
1418+ }
1419+
1420+ // whir 2转
1421+ func whirl (cc * context , value ... string ) (string , error ) {
1422+ _ = value
1423+ var wg sync.WaitGroup
1424+ var err error
1425+ var m sync.Mutex
1426+ piclen := 15
1427+ name := cc .usrdir + "whirl.gif"
1428+ c := dlrange ("whirl" , piclen , & wg , func (e error ) {
1429+ m .Lock ()
1430+ err = e
1431+ m .Unlock ()
1432+ })
1433+ if err != nil {
1434+ return "" , err
1435+ }
1436+ wg .Wait ()
1437+ tou , err := cc .getLogo (0 , 0 )
1438+ if err != nil {
1439+ return "" , err
1440+ }
1441+ imgs , err := loadFirstFrames (c , piclen )
1442+ if err != nil {
1443+ return "" , err
1444+ }
1445+ whirl := make ([]* image.NRGBA , piclen )
1446+ for i := 0 ; i < piclen ; i ++ {
1447+ whirl [i ] = imgs [i ].InsertUpC (img .Rotate (tou , float64 (- 24 * i ), 145 , 145 ).Im , 0 , 0 , 115 , 89 ).Im
1448+ }
1449+ return "file:///" + name , writer .SaveGIF2Path (name , img .MergeGif (7 , whirl ))
1450+ }
0 commit comments