Added minification of board images in stylesheets
This commit is contained in:
4714
package-lock.json
generated
4714
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -14,10 +14,13 @@
|
|||||||
"@types/gif.js": "^0.2.2",
|
"@types/gif.js": "^0.2.2",
|
||||||
"@types/hammerjs": "^2.0.41",
|
"@types/hammerjs": "^2.0.41",
|
||||||
"@types/howler": "^2.2.6",
|
"@types/howler": "^2.2.6",
|
||||||
|
"@types/imagemin": "^8.0.0",
|
||||||
"@types/node": "^17.0.30",
|
"@types/node": "^17.0.30",
|
||||||
"@types/ua-parser-js": "^0.7.36",
|
"@types/ua-parser-js": "^0.7.36",
|
||||||
"@vitejs/plugin-legacy": "^1.8.1",
|
"@vitejs/plugin-legacy": "^1.8.1",
|
||||||
"canvas": "^2.9.1",
|
"canvas": "^2.9.1",
|
||||||
|
"imagemin": "^7.0.1",
|
||||||
|
"imagemin-pngquant": "^9.0.2",
|
||||||
"mime": "^3.0.0",
|
"mime": "^3.0.0",
|
||||||
"npm": "^8.8.0",
|
"npm": "^8.8.0",
|
||||||
"typescript": "^4.4.4",
|
"typescript": "^4.4.4",
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -4,9 +4,10 @@ import Board from "../src/board/Board";
|
|||||||
import { CreateCanvas, LoadImage } from "../src/types";
|
import { CreateCanvas, LoadImage } from "../src/types";
|
||||||
import boardStyles from "../src/board/styles-board/boardStyles";
|
import boardStyles from "../src/board/styles-board/boardStyles";
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
|
import imagemin from "imagemin";
|
||||||
|
import imageminPngquant from "imagemin-pngquant";
|
||||||
|
|
||||||
const size = 1200;
|
const size = 1200;
|
||||||
// const OUT_DIR = "public/boards";
|
|
||||||
const OUT_DIR_LICHESS = "public/stylus/lichess/boards";
|
const OUT_DIR_LICHESS = "public/stylus/lichess/boards";
|
||||||
const OUT_DIR_CHESSCOM = "public/stylus/chesscom/boards";
|
const OUT_DIR_CHESSCOM = "public/stylus/chesscom/boards";
|
||||||
|
|
||||||
@@ -34,6 +35,9 @@ const ChesscomStylesheet = (
|
|||||||
};
|
};
|
||||||
|
|
||||||
const main = async () => {
|
const main = async () => {
|
||||||
|
// const imagemin = await import("imagemin");
|
||||||
|
// console.log(imagemin);
|
||||||
|
|
||||||
if (!fs.existsSync(OUT_DIR_CHESSCOM)) {
|
if (!fs.existsSync(OUT_DIR_CHESSCOM)) {
|
||||||
fs.mkdirSync(OUT_DIR_CHESSCOM, { recursive: true });
|
fs.mkdirSync(OUT_DIR_CHESSCOM, { recursive: true });
|
||||||
}
|
}
|
||||||
@@ -53,6 +57,8 @@ const main = async () => {
|
|||||||
.map((chunk) => chunk[0].toUpperCase() + chunk.substring(1))
|
.map((chunk) => chunk[0].toUpperCase() + chunk.substring(1))
|
||||||
.join(" ");
|
.join(" ");
|
||||||
|
|
||||||
|
const styleObj = boardStyles[boardStyle as BoardStyle];
|
||||||
|
|
||||||
const board = new Board(
|
const board = new Board(
|
||||||
{
|
{
|
||||||
size,
|
size,
|
||||||
@@ -67,12 +73,22 @@ const main = async () => {
|
|||||||
|
|
||||||
await board.renderStatic();
|
await board.renderStatic();
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
// const image = board.canvas.toBuffer();
|
const image = board.canvas.toBuffer();
|
||||||
|
const minified =
|
||||||
|
styleObj.category === "gradient" // Don't minify gradients, as it results in a BIGGER file
|
||||||
|
? image
|
||||||
|
: await imagemin.buffer(image, {
|
||||||
|
plugins: [imageminPngquant({ quality: [0.7, 0.9] })],
|
||||||
|
});
|
||||||
|
|
||||||
|
// fs.writeFileSync(`${OUT_DIR_CHESSCOM}/${boardStyle}.min.png`, minified);
|
||||||
|
|
||||||
|
const imgURL = `data:image/png;base64,${minified.toString("base64")}`;
|
||||||
|
|
||||||
const chesscomStylesheet = ChesscomStylesheet(
|
const chesscomStylesheet = ChesscomStylesheet(
|
||||||
board.toImgUrl(),
|
imgURL,
|
||||||
boardNamePretty,
|
boardNamePretty,
|
||||||
boardStyles[boardStyle as BoardStyle]
|
styleObj
|
||||||
);
|
);
|
||||||
|
|
||||||
fs.writeFileSync(
|
fs.writeFileSync(
|
||||||
|
|||||||
@@ -111,12 +111,10 @@ class Player {
|
|||||||
}
|
}
|
||||||
|
|
||||||
playAnarchySFX(position: Position) {
|
playAnarchySFX(position: Position) {
|
||||||
if (position.mate) {
|
|
||||||
sfx.death.play();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (position.move?.flags && position.move.flags.includes("e")) {
|
if (position.move?.flags && position.move.flags.includes("e")) {
|
||||||
sfx.enPassant.play();
|
sfx.enPassant.play();
|
||||||
|
} else if (position.mate) {
|
||||||
|
sfx.death.play();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (position.move?.flags && position.move.flags.includes("p")) {
|
if (position.move?.flags && position.move.flags.includes("p")) {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ const sfx = {
|
|||||||
}),
|
}),
|
||||||
enPassant: new Howl({
|
enPassant: new Howl({
|
||||||
src: ["/sfx/anarchy/en-passant.mp3"],
|
src: ["/sfx/anarchy/en-passant.mp3"],
|
||||||
volume: 0.2,
|
volume: 0.5,
|
||||||
}),
|
}),
|
||||||
horsyMove: new Howl({
|
horsyMove: new Howl({
|
||||||
src: ["/sfx/anarchy/horsy-move.mp3"],
|
src: ["/sfx/anarchy/horsy-move.mp3"],
|
||||||
|
|||||||
Reference in New Issue
Block a user