커스텀 폰트 사용 시, 배포 중 Provided Edge Function is too large 에러가 발생할 경우 로컬 파일로 사용하지말고 fetch
로 해당 폰트를 가져온다.12
Footnotes
import sharp from 'sharp'
import fg from 'fast-glob'
const entries = await fg('./**/*.png')
for (const entry of entries) {
const trimmedBuffer = await sharp(entry).trim().toBuffer()
const trimmedImage = sharp(trimmedBuffer)
const trimmedMetadata = await trimmedImage.metadata()
trimmedImage
.resize({
width: Math.round(trimmedMetadata.width / 2),
height: Math.round(trimmedMetadata.height / 2),
})
.png()
.toFile('output.png')
}
offset(top, left)값, 이미지 사이즈 설정으로 crop 구현이 가능하다
sharp('img.png')
.extract({
left: 50,
top: 50,
width: 200,
height: 400
})
이미지 저장1
- 페이지에서 JavaScript를 통해 이미지 추출
- 캔버스에서 이미지 추출
- 서버에서 이미지 가져오기
- DevTools 프로토콜을 사용하여 이미지 추출
const tree = await page._client.send('Page.getResourceTree')
for (const resource of tree.frameTree.resources) {
const { content } = await page._client.send(
'Page.getResourceContent',
{ frameId: String(page.mainFrame()._id), url: resource.url },
)
const contentBuffer = Buffer.from(content, 'base64')
}
page.on('response', async (response) => {
const url = response.url()
const buffer = await response.buffer()
})