webpでなくする ただしサムネやプレビューはwebpのまま (テスト)

This commit is contained in:
tamaina 2022-02-07 03:01:23 +09:00
parent e87e97fce4
commit e7d9221a71
4 changed files with 10 additions and 9 deletions

View file

@ -63,7 +63,7 @@ export async function populateEmoji(emojiName: string, noteUserHost: string | nu
const isLocal = emoji.host == null; const isLocal = emoji.host == null;
const emojiUrl = emoji.publicUrl || emoji.originalUrl; // || emoji.originalUrl してるのは後方互換性のため const emojiUrl = emoji.publicUrl || emoji.originalUrl; // || emoji.originalUrl してるのは後方互換性のため
const url = isLocal ? emojiUrl : `${config.url}/proxy/${encodeURIComponent(emojiUrl)}?${query({ url: emojiUrl })}`; const url = isLocal ? emojiUrl : `${config.url}/proxy/${encodeURIComponent((new URL(emojiUrl)).pathname)}?${query({ url: emojiUrl })}`;
return { return {
name: emojiName, name: emojiName,

View file

@ -11,7 +11,7 @@ import { DriveFiles } from '@/models/index';
import { InternalStorage } from '@/services/drive/internal-storage'; import { InternalStorage } from '@/services/drive/internal-storage';
import { downloadUrl } from '@/misc/download-url'; import { downloadUrl } from '@/misc/download-url';
import { detectType } from '@/misc/get-file-info'; import { detectType } from '@/misc/get-file-info';
import { convertToWebp } from '@/services/drive/image-processor'; import { convertToWebp, convertToJpeg, convertToPng } from '@/services/drive/image-processor';
import { GenerateVideoThumbnail } from '@/services/drive/generate-video-thumbnail'; import { GenerateVideoThumbnail } from '@/services/drive/generate-video-thumbnail';
import { StatusError } from '@/misc/fetch'; import { StatusError } from '@/misc/fetch';
import { FILE_TYPE_BROWSERSAFE } from '@/const'; import { FILE_TYPE_BROWSERSAFE } from '@/const';
@ -74,7 +74,7 @@ export default async function(ctx: Koa.Context) {
if (isWebpublic) { if (isWebpublic) {
if (['image/svg+xml'].includes(mime)) { if (['image/svg+xml'].includes(mime)) {
return await convertToWebp(path, 2048, 2048, 100); return await convertToPng(path, 2048, 2048);
} }
} }

View file

@ -194,7 +194,7 @@ export async function generateAlts(path: string, type: string, generateWeb: bool
} }
satisfyWebpublic = !!( satisfyWebpublic = !!(
type !== 'image/svg+xml' && type !== 'image/svg+xml' && type !== 'image/webp' &&
!(metadata.exif || metadata.iptc || metadata.xmp || metadata.tifftagPhotoshop) && !(metadata.exif || metadata.iptc || metadata.xmp || metadata.tifftagPhotoshop) &&
metadata.width && metadata.width <= 2048 && metadata.width && metadata.width <= 2048 &&
metadata.height && metadata.height <= 2048 metadata.height && metadata.height <= 2048
@ -214,10 +214,12 @@ export async function generateAlts(path: string, type: string, generateWeb: bool
logger.info(`creating web image`); logger.info(`creating web image`);
try { try {
if (['image/webp', 'image/jpeg'].includes(type)) { if (['image/jpeg', 'image/webp'].includes(type)) {
webpublic = await convertSharpToWebp(img, 2048, 2048); webpublic = await convertSharpToJpeg(img, 2048, 2048);
} else if (['image/png', 'image/svg+xml'].includes(type)) { } else if (['image/png'].includes(type)) {
webpublic = await convertSharpToWebp(img, 2048, 2048, 100); webpublic = await convertSharpToPng(img, 2048, 2048);
} else if (['image/svg+xml'].includes(type)) {
webpublic = await convertSharpToPng(img, 2048, 2048);
} else { } else {
logger.debug(`web image not created (not an required image)`); logger.debug(`web image not created (not an required image)`);
} }

View file

@ -16,7 +16,6 @@ export const uploads = ref<Uploading[]>([]);
const compressTypeMap = { const compressTypeMap = {
'image/jpeg': { quality: 0.85 }, 'image/jpeg': { quality: 0.85 },
'image/webp': { quality: 0.85, mimeType: 'image/jpeg'}, 'image/webp': { quality: 0.85, mimeType: 'image/jpeg'},
'image/png': { quality: 1 },
'image/svg+xml': { quality: 1, mimeType: 'image/png'}, 'image/svg+xml': { quality: 1, mimeType: 'image/png'},
} as const; } as const;