Skip to content

Commit 82d1649

Browse files
committed
Update image service.
1 parent 120205c commit 82d1649

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

src/image.service.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ const service: LocalImageService = {
217217
height?: number;
218218
quality?: number;
219219
format?: OutputFormat;
220+
inferSize?: boolean;
220221
}
221222
): Promise<{ data: Uint8Array; format: ImageOutputFormat }> {
222223
const MAX_WIDTH = 1280;
@@ -235,13 +236,28 @@ const service: LocalImageService = {
235236
}
236237
}
237238

238-
const width = transform.width
239+
let width = transform.width
239240
? Math.min(transform.width, MAX_WIDTH)
240241
: undefined;
241-
const height = transform.height
242+
let height = transform.height
242243
? Math.min(transform.height, MAX_HEIGHT)
243244
: undefined;
244245

246+
if (transform.inferSize) {
247+
try {
248+
const sharp = (await import("sharp")).default;
249+
const metadata = await sharp(buffer).metadata();
250+
if (!width && metadata.width) {
251+
width = metadata.width;
252+
}
253+
if (!height && metadata.height) {
254+
height = metadata.height;
255+
}
256+
} catch (err) {
257+
console.warn(`Error inferring image size: ${err}`);
258+
}
259+
}
260+
245261
try {
246262
const sharp = (await import("sharp")).default;
247263
let image = sharp(buffer, { failOn: "none" });

src/pages/speaker/[slug].astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ let avatar: any;
2222
2323
if (entry.data.avatar){
2424
try {
25-
avatar = getImage({ src: entry.data.avatar , alt: 'User avatar' });
25+
avatar = getImage({ src: entry.data.avatar, alt: 'User avatar' });
2626
} catch (e) {
2727
//TODO: improve placeholders and offline
2828
//avatar = await getImage({ src: 'https://placehold.co/600x400?text=x', width: '600', height:'400', alt: 'Default avatar' });

0 commit comments

Comments
 (0)