Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
@vercel/ogから学ぶOG画像生成技術の変遷/ジャムスタックチョットデキル!! 秋のLT...
Search
noe
November 10, 2022
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
@vercel/ogから学ぶOG画像生成技術の変遷/ジャムスタックチョットデキル!! 秋のLT大会2022
Jamstackによる開発を得意とするchot Inc.主催のライトニングトークイベントで登壇した資料です。
noe
November 10, 2022
Other Decks in Programming
See All in Programming
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
290
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
200
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
Domain-Driven Transformation
hschwentner
2
2.3k
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
1k
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
160
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
140
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
430
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
HDC tutorial
michielstock
2
960
Leo the Paperboy
mayatellez
10
2.4k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Deep Space Network (abreviated)
tonyrice
0
370
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
Producing Creativity
orderedlist
PRO
348
41k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
930
Odyssey Design
rkendrick25
PRO
2
870
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
Transcript
ちょっと株式会社 noe @vercel/ogから学ぶ OG画像生成技術の変遷
noe chot Inc. フロントエンドエンジニア 0xnoe_ @
@ Next.js + Vercelで動的OG画像生成をしたい場合は @vercel/ogを使うとよさそう @ Edge Computing環境のWebAssembly対応が進み、 パフォーマンスが改善されている LTでお伝えしたいこと
@vercel/ogとは
2022/10/10に発表されたOG画像生成ライブラリ
基本的な仕組み @vercel/ogとは コアエンジンとしてSatoriを使い、HTMLとCSS をSVGに変換すI ResvgによってSVG→PNGに変換すI これらの処理をVercel Edge
Functions上で行` 2022/11月現在はVercelのベータ版機能
Q デフォルトのNode.jsランタイムはサポート されていないため、runtimeオプションで Edgeランタイムであることを明示する Q ImageResponse関数にマークアップを渡す Q テキストなど動的に変えたい場合は クエリパラメータから引っ張る 実装例
@vercel/ogとは
@vercel/ogとは
画像配信CDN → Cloudinary, imgix サーバーサイドで画像処理 → node-canvas, RMagick
Serverless Functionsでスクリーンショット → puppeteer, playwrite(Chromium) 以前からあるOG生成手法
従来の課題 - 保守性
画像配信CDN系 → 座標、パラメータ等の指定
画像配信CDN系 → 座標、パラメータ等の指定 しんどみ深太郎
サーバーサイド画像処理 Canvasを立てる 最大幅を超えた場合に文字を 折り返すための処理を独自定義 ...etc → 簡単な画像を作りたい場合でも
コード量が膨れ上がる
サーバーサイド画像処理 Canvasを立てる 最大幅を超えた場合に文字を 折り返すための処理を独自定義 ...etc → 簡単な画像を作りたい場合でも
コード量が膨れ上がる
Q デフォルトのNode.jsランタイムはサポート されていないため、runtimeオプションで Edgeランタイムであることを明示する Q ImageResponse関数にマークアップを渡す Q テキストなど動的に変えたい場合は クエリパラメータから引っ張る 実装例
@vercel/ogとは
従来の課題 - 速度
旧@vercel/og-imageはSurverless Functions + puppetee 同梱のChromiumが重い(~280MBW AWS Lambdaのサイズ上限に引っかかるため
圧縮しなければならない→それでも50M5 コールドスタート(Lambdaインスタンスが 処理する最初のリクエスト)時に解凍するが、遅い。 Surverless + Headless Browserの課題
@vercel/ogが解決すること 実装が容易 - node-canvasやImageMagicによる実装コスト と比べると、ほぼHTML, CSSのみ意識すれば良いため組み やすい。 速い - Headless
browserを使わず、Edge環境上で WebAssemblyを介しているため高速。旧vercel/og-image と比較して5倍速いらしい
8 Vercel + Next.jsで動的OG画像生成なら@vercel/o デザインテンプレート 8 上記以外の環境でも、satori + resvgを使えば同様の処理を実現できT 8
いい感じにOG画像を作るための あり(有志) 8 Serverless Function + Headless browser → Edge Function + WebAssembly に変化 最後に
https://fullstackheroes.com/resources/vercel-og-templates/
chot Inc. noe 完