Tüm tuvali belirli bir renkle doldurma


92

HTML5'in tamamı <canvas>tek renkle nasıl doldurulur .

CSS kullanarak arka plan rengini değiştirmek için bunun gibi bazı çözümler gördüm ancak tuval şeffaf kaldığı için bu iyi bir çözüm değil, değişen tek şey kapladığı alanın rengi.

Bir diğeri, tuvalin içindeki renkle bir şey oluşturmaktır, örneğin bir dikdörtgen ( buraya bakın ), ancak yine de tüm tuvali renkle doldurmuyor (kanvas oluşturduğumuz şekilden daha büyükse).

Tüm tuvali belirli bir renkle doldurmanın bir çözümü var mı?

Yanıtlar:


150

Evet, bir Dikdörtgeni tuval boyunca düz bir renkle doldurun , tuvalin kendisinin heightve karakterini kullanın width:

var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "blue";
ctx.fillRect(0, 0, canvas.width, canvas.height);
canvas{ border: 1px solid black; }
<canvas width=300 height=150 id="canvas">


17

Arka planı açıkça yapmak istiyorsanız , tuval üzerindeki mevcut öğelerin arkasını çizdiğinizden emin olmalısınız .

var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
// Add behind elements.
ctx.globalCompositeOperation = 'destination-over'
// Now draw!
ctx.fillStyle = "blue";
ctx.fillRect(0, 0, canvas.width, canvas.height);

4
İnsanların bir resim olarak bir renk bloğu istemeyebileceğini fark ettiğiniz için teşekkür ederiz!
FamousAv8er

6

let canvas = document.getElementById('canvas');
canvas.setAttribute('width', window.innerWidth);
canvas.setAttribute('height', window.innerHeight);
let ctx = canvas.getContext('2d');

//Draw Canvas Fill mode
ctx.fillStyle = 'blue';
ctx.fillRect(0,0,canvas.width, canvas.height);
* { margin: 0; padding: 0; box-sizing: border-box; }
body { overflow: hidden; }
<canvas id='canvas'></canvas>


6

Bunu yaparak tuvalin arka planını değiştirebilirsiniz:

<head>
    <style>
        canvas {
            background-color: blue;
        }
    </style>
</head>

1
@Enve, CSS kullanmamasını istediğini söyledi.

0

Biliyor musun, tuval grafikleri için tam bir kütüphane var. Buna p5.js adı verilir. Bunu, baş öğenize yalnızca tek bir satır ve ek bir sketch.js dosyasıyla ekleyebilirsiniz.

Bunu önce html ve gövde etiketlerinize yapın:

<html style="margin:0 ; padding:0">
<body style="margin:0 ; padding:0">

Bunu kafana ekle:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/p5.js"></script>
<script type="text/javascript" src="sketch.js"></script>

Sketch.js dosyası

function setup() {
    createCanvas(windowWidth, windowHeight);
    background(r, g, b);
}

Not p5.jsedilir 340kBminizied ve gziplenmiş! Bu sayfanın biraz daha hafif seçenekler içerdiğini söyleyebilirim ..
kano

@kano Bu cevabı sadece çaylakken yazdım. O zamandan beri uzun zaman oldu.
kingmanas
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.