Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
31d4e540ce | ||
|
|
3f02b323a3 | ||
|
|
e3c511b5d5 | ||
|
|
ae51f41fdf | ||
|
|
d875ae70d5 | ||
|
|
841d831486 | ||
|
|
ce93f90250 | ||
|
|
59383f703f | ||
|
|
0d3da3d102 | ||
|
|
c5d4d16596 | ||
|
|
1b2f26e7eb | ||
|
|
e78ac3a4c6 | ||
|
|
d2de8d6c7e |
@@ -0,0 +1,32 @@
|
||||
// Engangsjobb: skapa -s (800px) och -m (1600px) for redan synkade portfolio-bilder.
|
||||
// Kallan ar den befintliga 3000px-filen i repot - ingen ny nedladdning fran Immich.
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import sharp from "sharp";
|
||||
|
||||
const DIR = "src/assets/images/portfolio";
|
||||
const SIZES = [{ suffix: "-s", dim: 800 }, { suffix: "-m", dim: 1600 }];
|
||||
const QUALITY = 88;
|
||||
|
||||
const files = fs.readdirSync(DIR).filter(
|
||||
(f) => /^immich-[0-9a-f-]{36}-/i.test(f) && /\.jpg$/i.test(f) && !/-[sm]\.jpg$/i.test(f)
|
||||
);
|
||||
console.log(`hittade ${files.length} large-bilder`);
|
||||
|
||||
let skapade = 0, hoppade = 0;
|
||||
for (const f of files) {
|
||||
const src = path.join(DIR, f);
|
||||
const base = src.replace(/\.jpg$/i, "");
|
||||
for (const { suffix, dim } of SIZES) {
|
||||
const dest = `${base}${suffix}.jpg`;
|
||||
if (fs.existsSync(dest)) { hoppade++; continue; }
|
||||
await sharp(src)
|
||||
.rotate()
|
||||
.resize(dim, dim, { fit: "inside", withoutEnlargement: true })
|
||||
.withMetadata()
|
||||
.jpeg({ quality: QUALITY })
|
||||
.toFile(dest);
|
||||
skapade++;
|
||||
}
|
||||
}
|
||||
console.log(`klart: ${skapade} skapade, ${hoppade} fanns redan`);
|
||||
|
After Width: | Height: | Size: 312 KiB |
|
After Width: | Height: | Size: 128 KiB |
|
After Width: | Height: | Size: 391 KiB |
|
After Width: | Height: | Size: 155 KiB |
|
After Width: | Height: | Size: 323 KiB |
|
After Width: | Height: | Size: 132 KiB |
|
After Width: | Height: | Size: 349 KiB |
|
After Width: | Height: | Size: 154 KiB |
|
After Width: | Height: | Size: 937 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 283 KiB |
|
After Width: | Height: | Size: 114 KiB |
|
After Width: | Height: | Size: 349 KiB |
|
After Width: | Height: | Size: 167 KiB |
|
After Width: | Height: | Size: 213 KiB |
|
After Width: | Height: | Size: 90 KiB |
|
After Width: | Height: | Size: 214 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 299 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 700 KiB |
|
After Width: | Height: | Size: 205 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 251 KiB |
|
After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 297 KiB |
|
After Width: | Height: | Size: 134 KiB |
|
After Width: | Height: | Size: 329 KiB |
|
After Width: | Height: | Size: 128 KiB |
|
After Width: | Height: | Size: 264 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 413 KiB |
|
After Width: | Height: | Size: 185 KiB |
|
After Width: | Height: | Size: 432 KiB |
|
After Width: | Height: | Size: 192 KiB |
|
After Width: | Height: | Size: 150 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 279 KiB |
|
After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 424 KiB |
|
After Width: | Height: | Size: 168 KiB |
|
After Width: | Height: | Size: 464 KiB |
|
After Width: | Height: | Size: 153 KiB |
|
After Width: | Height: | Size: 225 KiB |
|
After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 302 KiB |
|
After Width: | Height: | Size: 128 KiB |
|
After Width: | Height: | Size: 190 KiB |
|
After Width: | Height: | Size: 86 KiB |
|
After Width: | Height: | Size: 354 KiB |
|
After Width: | Height: | Size: 136 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 217 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 230 KiB |
|
After Width: | Height: | Size: 126 KiB |
|
After Width: | Height: | Size: 318 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 283 KiB |
|
After Width: | Height: | Size: 109 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 253 KiB |
|
After Width: | Height: | Size: 113 KiB |
|
After Width: | Height: | Size: 255 KiB |
|
After Width: | Height: | Size: 103 KiB |
|
After Width: | Height: | Size: 535 KiB |
|
After Width: | Height: | Size: 194 KiB |
|
After Width: | Height: | Size: 253 KiB |
|
After Width: | Height: | Size: 111 KiB |
|
After Width: | Height: | Size: 292 KiB |
|
After Width: | Height: | Size: 121 KiB |
|
After Width: | Height: | Size: 366 KiB |
|
After Width: | Height: | Size: 136 KiB |
|
After Width: | Height: | Size: 1017 KiB |
|
After Width: | Height: | Size: 389 KiB |
|
After Width: | Height: | Size: 158 KiB |
|
After Width: | Height: | Size: 322 KiB |
|
After Width: | Height: | Size: 134 KiB |
|
After Width: | Height: | Size: 223 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 222 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 330 KiB |
|
After Width: | Height: | Size: 145 KiB |
|
After Width: | Height: | Size: 809 KiB |
|
After Width: | Height: | Size: 257 KiB |
|
After Width: | Height: | Size: 299 KiB |
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 229 KiB |
|
After Width: | Height: | Size: 90 KiB |
|
After Width: | Height: | Size: 177 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 235 KiB |
|
After Width: | Height: | Size: 105 KiB |
|
After Width: | Height: | Size: 266 KiB |
|
After Width: | Height: | Size: 111 KiB |
|
After Width: | Height: | Size: 338 KiB |
|
After Width: | Height: | Size: 151 KiB |