0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

拡大されたcanvasでピクセルを綺麗に表示させたい時にCSSがいい感じだった

Last updated at Posted at 2025-04-03

自分はピクセルなレトロなゲームみたいなものをCanvasで描画した。

小さいのでscaleで二倍にする

やってみたけど128pxは小さいので256pxしたいな~と思ってこのようにする。
(最低限に抜粋)

HTML
<canvas width="256" height="256"></canvas>
CSS
canvas{
    image-rendering: pixelated;
}
JS
ctx.scale(2, 2);

しかしscaleはガビガビ

しかしこのようにしてピクセルな画像を表示したら
なんかピクセルがガビガビになった。

そんな時にCSS

こんな風にしたら、ピクセルが綺麗なまま2倍に拡大できた。

HTML
<canvas width="128" height="128"></canvas>
CSS
canvas{
    image-rendering: pixelated;
    width: 256px;
    height: 256px;
}
JS
// ctx.scale(2, 2);

まとめ

canvasでピクセルが重要なレトロなものを拡大して描画したい場合、ctx.scale(2, 2)ではなくCSSでwidth: calc(横サイズ * 2px); height: calc(縦サイズ * 2px);(暗算も可)とすると綺麗。
HTMLのcanvasのサイズはJavaScriptのコンテキストで扱うサイズのままにする

なお一般的にはcanvas+CSSはよくないとされている。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?