​​React​Canvas API,Playwright,TypeScript,WebCodecs API

Thumbnail of post image 039

​

ブラウザの ImageDecoder で GIF を1コマずつ取り出し、表示時間と一緒に React で並べます。差分だけが入ったコマも前のコマと重ねた1枚の画像として返ること、コマ数を読む前に completed を待つ理由も確かめ ...

​​React​Canvas API,Playwright,TypeScript

Thumbnail of post image 062

​

選んだ画像を canvas の toBlob() で JPEG や WebP に書き出し、ファイルの大きさと PSNR を React で並べて比べます。書き出せない形式が PNG になる点や、透明な部分の扱いも確かめました。 ...

​​CSS​Canvas API,HTML

Thumbnail of post image 085

​

小さなドット絵を img で拡大すると、境目がぼけます。image-rendering: pixelated を付けると、元のドットのまま拡大されます。crisp-edges との違い、整数倍でない大きさ、背景画像や canvas で ...

​​React​Canvas API,Playwright,SVG,TypeScript

Thumbnail of post image 175

​

画像の R・G・B をそれぞれ数段階にそろえ、色の数を減らしたポスターのような画像を React で表示して PNG で保存しました。SVG のフィルターで表示だけを変える書き方と、color-interpolation-filter ...

​​React​Canvas API,Playwright,TypeScript

Thumbnail of post image 003

​

2枚の画像を1画素ずつ比べ、違う画素をピンクで塗った画像を React で表示しました。差を見逃さないためのしきい値の決め方と、JPEG と比べると変えていない部分まで違う画素になることも、画素を数えて確かめています。

​​React​Canvas API,CSS Font Loading API,Playwright,TypeScript

Thumbnail of post image 092

​

選んだ画像に文字を重ねて、そのまま PNG で保存する仕組みを React で作りました。canvas に文字を描く設定、縁取りの描き方、長い文の折り返し、Webフォントを読み込み終わってから描く理由を、検証環境で確かめています。

​​React​Canvas API,jsQR,Playwright,TypeScript

Thumbnail of post image 043

​

選んだ画像を canvas に描いて画素を取り出し、jsQR に渡して QR コードを読む React のコンポーネントです。背景が透明な PNG、白黒が反対の QR コード、大きな画像、Shift_JIS の文字、QR コードが2つ ...

​​React​Canvas API,Playwright,SVG,TypeScript

Thumbnail of post image 164

​

選んだ画像の画素を canvas で読み、明るさ 0〜255 ごとの数を棒グラフにする React のコンポーネントです。明るさの計算に使う重み、透明な画素の扱い、画像を縮めてから数えたときの時間と結果の違い、縦軸を対数にする理由を、 ...

​​React​Canvas API,Playwright,TypeScript

Thumbnail of post image 024

​

選んだ画像の全面に、斜めに並べた文字の透かしを入れて保存する仕組みを React で作りました。パターンを回して角まで埋める方法、縁取りした文字を均一に薄くする方法、JPEG で保存するときの透明な部分の扱いを、検証環境で確かめていま ...

​​React​Canvas API,File API,Playwright,TypeScript

Thumbnail of post image 155

​

選んだ複数の画像を横・縦・格子に並べ、1枚の PNG にして保存する仕組みを React で作りました。手元にある何枚かの画像を、1枚のコラージュ画像にまとめて保存したい場面で使えます。大きさの違う画像のそろえ方、正方形への切り抜き、 ...

​​React​Canvas API,CSS,Playwright,TypeScript

Thumbnail of post image 056

​

画像の明るさとコントラストを2本のスライダーで調整し、PNG で保存するコンポーネントを React で作りました。画面では CSS の filter、保存では canvas の ctx.filter に同じ文字列を渡します。値が 2 ...

​​React​Canvas API,Playwright,TypeScript

Thumbnail of post image 200

​

画像の上をドラッグした範囲にモザイクをかけて、そのまま保存できる仕組みを React で作りました。マスごとに平均の色で塗る処理、縮めて表示した canvas での座標の直し方、縮めて引き伸ばす書き方との違いも確かめています。 ...

​​React​Canvas API,Playwright,TypeScript

Thumbnail of post image 038

​

選んだ画像を 90° ずつ回したり左右・上下に反転したりして、そのままファイルに保存する仕組みを React で作りました。向きの持ち方と canvas での描き方、回したあとに反転したときのずれ、EXIF の向きも確かめています。

​​React​Canvas API,Playwright,TypeScript,カスタムフック

Thumbnail of post image 041

​

画像を小さく canvas に描き、getImageData で読んだピクセルの色を数えて、いちばん多い色を代表色にする React のコードです。平均色との違い、色をまとめる段階の数、透明な部分、別のオリジンの画像で起きるエラーも確 ...

​​React​Canvas API,Playwright,TypeScript,useEffect,カスタムフック

Thumbnail of post image 040

​

未読が3件あるとき、タブに「(3) 猫のメモ」と出し、ファビコンに件数を描く方法です。React 19 の title と canvas で作り、100件以上を「99+」にする場合、件数が続けて変わる場合、アイコンが別オリジンにある場 ...

​​React​Canvas API,PDF.js,Playwright,TypeScript,Vite

Thumbnail of post image 169

​

PDF.js で読み込んだ PDF を、React で1ページずつ canvas に描き、前後のボタンで送る方法です。速く送るときは前の描画を取り消し、高解像度の画面では倍の画素で描き、フォントを埋め込んでいない日本語の PDF には ...

​​React​Canvas API,Playwright,TypeScript,Web Audio API

Thumbnail of post image 174

​

ユーザーが選んだ音声ファイルの波形を、ライブラリを使わずに canvas へ描く方法です。Web Audio API で数値の並びにデコードし、canvas の横幅と同じ数の区間ごとに最小値と最大値を取って描きます。再生位置の表示と、 ...

​​React​Canvas API,Playwright,TypeScript

Thumbnail of post image 008

​

getUserMedia() で得たカメラの映像を video に映し、撮影ボタンを押した瞬間の映像を canvas に描いて JPEG にする方法です。StrictMode でもカメラを止め忘れない片付けの書き方と、前面カメラの左右 ...

​​React​Canvas API,Playwright,TypeScript

Thumbnail of post image 171

​

ユーザーが選んだ動画ファイルから、ブラウザの中でサムネイル用の JPEG を作る方法です。画面に出さない video 要素で場面へ移動し、canvas に描いて toBlob で画像にします。seeked を待たずに描くと前の場面が写 ...

​​React​Canvas API,Playwright,qrcode.react,TypeScript

Thumbnail of post image 034

​

入力した文字から QR コードを作り、画面に表示して PNG で保存できる React のコンポーネントを、qrcode.react で作ります。読み取れなくなる原因になりやすい余白の不足、入る文字数の上限、ロゴを重ねるときの誤り訂正 ...

​​React​Canvas API,Playwright,Pointer Events,TypeScript

Thumbnail of post image 039

​

canvas と Pointer Events で、マウスでも指でも書ける署名欄を React で作りました。線を点の配列で持って描き直す作りにし、画面の倍率、幅の変化、枠の外へのはみ出し、スクロールとの取り合い、画像への書き出しを確 ...

​​React​Canvas API,CORS,Playwright,Pointer Events,TypeScript

Thumbnail of post image 007

​

画像の上で範囲をドラッグして選び、その部分を PNG に切り抜く仕組みを、ライブラリを使わずに React で作りました。手元の画像をブラウザの中でトリミングする画面に使えます。setPointerCapture と draggabl ...

​​React​Canvas API,File API,Playwright,TypeScript

Thumbnail of post image 091

​

選んだ画像をブラウザの中で縮小し、送る前にプレビューする方法を React と TypeScript で確かめました。アップロード前の画像の圧縮に使えます。canvas で JPEG にする関数、選び直したときの古い結果の捨て方、透明 ...