|
|
@@ -1,18 +1,17 @@
|
|
|
const path = require("path");
|
|
|
const fs = require("fs");
|
|
|
-const draw = require("./imageUrl").draw;
|
|
|
+const gm = require("gm").subClass({ imageMagick: true });
|
|
|
+const queue = require("queue");
|
|
|
+
|
|
|
+const q = queue({ results: [], concurrency: 16 });
|
|
|
let main = {
|
|
|
list: [],
|
|
|
- fileList: [],
|
|
|
imgsrc: "",
|
|
|
- basePath: "/Users/drew/Downloads/未命名文件夹 2",
|
|
|
+ basePath: "/Users/drew/Downloads/未命名文件夹",
|
|
|
total: 0,
|
|
|
now: 0,
|
|
|
max: 5000,
|
|
|
type: 0,
|
|
|
- test() {
|
|
|
- console.log(this.list);
|
|
|
- },
|
|
|
backName(list) {
|
|
|
return [...list].map((item) => {
|
|
|
return item.name;
|
|
|
@@ -69,7 +68,7 @@ let main = {
|
|
|
this.drawType1(_map);
|
|
|
}
|
|
|
},
|
|
|
- async drawType2(_map) {
|
|
|
+ drawType2(_map) {
|
|
|
const allkeys = [..._map.keys()].sort((a, b) => {
|
|
|
return Number(a) - Number(b);
|
|
|
});
|
|
|
@@ -79,8 +78,6 @@ let main = {
|
|
|
let list2 = allkeys.map((item) => {
|
|
|
return _map.get(item)[1];
|
|
|
});
|
|
|
- console.log(list1);
|
|
|
- console.log(list2);
|
|
|
let allList = new Array(this.max);
|
|
|
list2.forEach((_list, index) => {
|
|
|
_list.forEach((item) => {
|
|
|
@@ -103,18 +100,14 @@ let main = {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
- console.log(allList);
|
|
|
this.total = allList.length;
|
|
|
this.startDraw(allList);
|
|
|
},
|
|
|
- async drawType1(_map) {
|
|
|
- console.log(_map);
|
|
|
+ drawType1(_map) {
|
|
|
[..._map.keys()].forEach((_key) => {
|
|
|
let _list = _map.get(_key);
|
|
|
- console.log(_list);
|
|
|
let _radios2 = [];
|
|
|
let _radios = _list.map((item) => {
|
|
|
- console.log(item);
|
|
|
let names = item.split("_");
|
|
|
let num = Number(names[2]);
|
|
|
if (num > 0) {
|
|
|
@@ -152,7 +145,6 @@ let main = {
|
|
|
.map((_key) => {
|
|
|
return _map.get(_key);
|
|
|
});
|
|
|
- console.log(allList);
|
|
|
|
|
|
let totalList = [];
|
|
|
|
|
|
@@ -169,35 +161,42 @@ let main = {
|
|
|
_list.push([..._vals.keys()][index]);
|
|
|
});
|
|
|
totalList.push(_list);
|
|
|
- console.log(rs);
|
|
|
}
|
|
|
- console.log(totalList);
|
|
|
|
|
|
- this.total = totalList.length;
|
|
|
- this.splitList(totalList, 8).forEach((item) => {
|
|
|
- this.startDraw(item);
|
|
|
- });
|
|
|
+ this.startDraw(totalList);
|
|
|
},
|
|
|
- splitList(list, size) {
|
|
|
- let arr = [];
|
|
|
- for (let j = 0; j < size; j++) {
|
|
|
- arr[j] = [];
|
|
|
- }
|
|
|
- console.log(arr);
|
|
|
- for (let i = 0; i < list.length; i++) {
|
|
|
- arr[i % size].push(list[i]);
|
|
|
- }
|
|
|
- return arr;
|
|
|
- },
|
|
|
- async startDraw(list, index = 0) {
|
|
|
- // draw(list[index], this.basePath).then(() => {
|
|
|
- // if (list.length - 1 > index) {
|
|
|
- // this.startDraw(list, index + 1);
|
|
|
- // }
|
|
|
- // });
|
|
|
- for (let i = 0; i < list.length; i++) {
|
|
|
- this.now = index + 1;
|
|
|
- await draw(list[i], this.basePath);
|
|
|
+ startDraw(list) {
|
|
|
+ let c = 0;
|
|
|
+ for (let imgs of list) {
|
|
|
+ q.push((cb) => {
|
|
|
+ let t = new Date().getTime();
|
|
|
+ let name =
|
|
|
+ imgs
|
|
|
+ .map((item) => {
|
|
|
+ let infos = item.replace(/.png/, "").split("_");
|
|
|
+ return infos[infos.length - 1];
|
|
|
+ })
|
|
|
+ .join("_") + ".png";
|
|
|
+ let g = gm();
|
|
|
+ for (let img of imgs) {
|
|
|
+ g = g.in(path.resolve(this.basePath, img));
|
|
|
+ }
|
|
|
+ g.mosaic().write(
|
|
|
+ path.resolve(this.basePath, "images", name),
|
|
|
+ function (err) {
|
|
|
+ if (err) {
|
|
|
+ console.log(err);
|
|
|
+ }
|
|
|
+ console.log(
|
|
|
+ ++c +
|
|
|
+ " done in " +
|
|
|
+ (new Date().getTime() - t) +
|
|
|
+ "ms"
|
|
|
+ );
|
|
|
+ cb();
|
|
|
+ }
|
|
|
+ );
|
|
|
+ });
|
|
|
}
|
|
|
},
|
|
|
getRandom(m = 1, n = 100) {
|
|
|
@@ -205,6 +204,10 @@ let main = {
|
|
|
},
|
|
|
};
|
|
|
main.drawEnter();
|
|
|
-setInterval(() => {
|
|
|
- console.log(1);
|
|
|
-}, 1000);
|
|
|
+let t = new Date().getTime();
|
|
|
+q.start(function (err) {
|
|
|
+ if (err) throw err;
|
|
|
+ console.log(
|
|
|
+ "all done in " + parseInt((new Date().getTime() - t) / 1000) + "s"
|
|
|
+ );
|
|
|
+});
|