mirror of
https://github.com/misskey-dev/media-proxy.git
synced 2025-08-08 09:13:51 +09:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
384c51569f | |||
57aa87f370 | |||
d86823e32d | |||
405e6a5adb |
@ -72,7 +72,7 @@ https://www.google.com/images/errors/robot.png をプロキシする場合:
|
|||||||
#### static
|
#### static
|
||||||
存在すると、アニメーション画像では最初のフレームのみの静止画のwebpが応答される。
|
存在すると、アニメーション画像では最初のフレームのみの静止画のwebpが応答される。
|
||||||
|
|
||||||
emojiまたはavatarとstaticが同時に指定された場合は、それぞれに応じた高さが、指定されていない場合は幅498px・高さ280pxに収まるサイズ以下に縮小される。
|
emojiまたはavatarとstaticが同時に指定された場合は、それぞれに応じた高さが、指定されていない場合は幅498px・高さ422pxに収まるサイズ以下に縮小される。
|
||||||
|
|
||||||
#### preview
|
#### preview
|
||||||
存在すると、幅200px・高さ200pxに収まるサイズ以下のwebpが応答される。
|
存在すると、幅200px・高さ200pxに収まるサイズ以下のwebpが応答される。
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
import sharp from 'sharp';
|
import sharp from 'sharp';
|
||||||
export const webpDefault = {
|
export const webpDefault = {
|
||||||
quality: 85,
|
quality: 77,
|
||||||
alphaQuality: 95,
|
alphaQuality: 95,
|
||||||
lossless: false,
|
lossless: false,
|
||||||
nearLossless: false,
|
nearLossless: false,
|
||||||
smartSubsample: true,
|
smartSubsample: true,
|
||||||
mixed: true,
|
mixed: true,
|
||||||
|
effort: 2,
|
||||||
};
|
};
|
||||||
export function convertToWebpStream(path, width, height, options = webpDefault) {
|
export function convertToWebpStream(path, width, height, options = webpDefault) {
|
||||||
return convertSharpToWebpStream(sharp(path), width, height, options);
|
return convertSharpToWebpStream(sharp(path), width, height, options);
|
||||||
|
@ -122,7 +122,7 @@ async function proxyHandler(request, reply) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ('static' in request.query) {
|
else if ('static' in request.query) {
|
||||||
image = convertSharpToWebpStream(await sharpBmp(file.path, file.mime), 498, 280);
|
image = convertSharpToWebpStream(await sharpBmp(file.path, file.mime), 498, 422);
|
||||||
}
|
}
|
||||||
else if ('preview' in request.query) {
|
else if ('preview' in request.query) {
|
||||||
image = convertSharpToWebpStream(await sharpBmp(file.path, file.mime), 200, 200);
|
image = convertSharpToWebpStream(await sharpBmp(file.path, file.mime), 200, 200);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "misskey-media-proxy",
|
"name": "misskey-media-proxy",
|
||||||
"version": "0.0.17",
|
"version": "0.0.19",
|
||||||
"description": "The Media Proxy for Misskey",
|
"description": "The Media Proxy for Misskey",
|
||||||
"main": "built/index.js",
|
"main": "built/index.js",
|
||||||
"packageManager": "pnpm@7.28.0",
|
"packageManager": "pnpm@7.28.0",
|
||||||
|
@ -16,12 +16,13 @@ export type IImageStream = {
|
|||||||
export type IImageStreamable = IImage | IImageStream;
|
export type IImageStreamable = IImage | IImageStream;
|
||||||
|
|
||||||
export const webpDefault: sharp.WebpOptions = {
|
export const webpDefault: sharp.WebpOptions = {
|
||||||
quality: 85,
|
quality: 77,
|
||||||
alphaQuality: 95,
|
alphaQuality: 95,
|
||||||
lossless: false,
|
lossless: false,
|
||||||
nearLossless: false,
|
nearLossless: false,
|
||||||
smartSubsample: true,
|
smartSubsample: true,
|
||||||
mixed: true,
|
mixed: true,
|
||||||
|
effort: 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
export function convertToWebpStream(path: string, width: number, height: number, options: sharp.WebpOptions = webpDefault): IImageStream {
|
export function convertToWebpStream(path: string, width: number, height: number, options: sharp.WebpOptions = webpDefault): IImageStream {
|
||||||
|
@ -168,7 +168,7 @@ async function proxyHandler(request: FastifyRequest<{ Params: { url: string; };
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
} else if ('static' in request.query) {
|
} else if ('static' in request.query) {
|
||||||
image = convertSharpToWebpStream(await sharpBmp(file.path, file.mime), 498, 280);
|
image = convertSharpToWebpStream(await sharpBmp(file.path, file.mime), 498, 422);
|
||||||
} else if ('preview' in request.query) {
|
} else if ('preview' in request.query) {
|
||||||
image = convertSharpToWebpStream(await sharpBmp(file.path, file.mime), 200, 200);
|
image = convertSharpToWebpStream(await sharpBmp(file.path, file.mime), 200, 200);
|
||||||
} else if ('badge' in request.query) {
|
} else if ('badge' in request.query) {
|
||||||
|
Reference in New Issue
Block a user