Add thumbnail support via ffmpeg API (incomplete

This commit is contained in:
2023-08-26 22:11:55 +08:00
parent cc856801bf
commit 8d8cade692
17 changed files with 638 additions and 5 deletions

View File

@@ -2,10 +2,18 @@ import { join } from "std/path/mod.ts";
import { filterFilename } from "../utils.ts";
import type { EhFile } from "../db.ts";
export enum ThumbnailGenMethod {
Unknown,
Cover,
Contain,
Fill,
}
export type ThumbnailConfig = {
width: number;
height: number;
quality: number;
method: ThumbnailGenMethod;
};
export function generate_filename(
@@ -13,10 +21,22 @@ export function generate_filename(
f: EhFile,
cfg: ThumbnailConfig,
) {
let method = "";
switch (cfg.method) {
case ThumbnailGenMethod.Cover:
method = "-cover";
break;
case ThumbnailGenMethod.Contain:
method = "-contain";
break;
case ThumbnailGenMethod.Fill:
method = "-fill";
break;
}
return join(
base,
filterFilename(
`${f.id}-${f.token}-${cfg.width}x${cfg.height}-q${cfg.quality}.jpg`,
`${f.id}-${f.token}-${cfg.width}x${cfg.height}-q${cfg.quality}${method}.jpg`,
),
);
}