Skip to content

Commit 962c48c

Browse files
authored
gif系列,新增,更新旧的素材 (#373)
1 parent 03fc569 commit 962c48c

File tree

5 files changed

+460
-10
lines changed

5 files changed

+460
-10
lines changed

plugin/gif/gif.go

Lines changed: 294 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)