summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/utils/thumbnailer.ts9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/utils/thumbnailer.ts b/src/utils/thumbnailer.ts
index ffd1c67..7551870 100644
--- a/src/utils/thumbnailer.ts
+++ b/src/utils/thumbnailer.ts
@@ -14,7 +14,12 @@ export default class Thumbnailer {
static getThumbPath(path: string) {
const dir = path.slice(path.indexOf("/") + 1, path.lastIndexOf("/")).replaceAll("/", "-");
- return `${this.thumbnailDir}/${dir}-${basename(path)}.jpg`;
+ return `${this.thumbnailDir}/${dir}-${basename(path)}.png`;
+ }
+
+ static async shouldThumbnail(path: string) {
+ const [width, height] = (await execAsync(`identify -ping -format "%w %h" ${path}`)).split(" ").map(parseInt);
+ return width > this.thumbWidth || height > this.thumbHeight;
}
static async #thumbnail(path: string, attempts: number): Promise<string> {
@@ -40,6 +45,8 @@ export default class Thumbnailer {
}
static async thumbnail(path: string): Promise<string> {
+ if (!(await this.shouldThumbnail(path))) return path;
+
let thumbPath = this.getThumbPath(path);
// If not lazy (i.e. force gen), delete existing thumbnail