JavaScript Academy · Lektion

Arbejde med billeder og tekst

Tegn billeder og stylede tekststykker på canvas.

Lektion 3 af 413 trin

Arbejde med billeder og tekst er en gratis JavaScript Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i JavaScript Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. JavaScript Academy-kurset indeholder 4 lektioner i alt.

Indlæsning af et billede

Canvas tegner ud fra et HTMLImageElement. Opret et Image, angiv dets src, og vent på onload, før du tegner — pixels er ikke tilgængelige før da.

const img = new Image();
img.onload = () => ctx.drawImage(img, 0, 0);
img.src = "/logo.png";

Grundlæggende brug af drawImage

drawImage(img, dx, dy) tegner billedet på den angivne position i dets oprindelige størrelse.

img.onload = () => {
  ctx.drawImage(img, 20, 20);
};

Skalering af billeder

Varianten med fem argumenter, drawImage(img, dx, dy, dWidth, dHeight), skalerer billedet ind i et målrektangel.

ctx.drawImage(img, 0, 0, 160, 90); // fit into 160x90

Beskæring med kilde-rektangel

Varianten med ni argumenter gør det muligt at beskære: drawImage(img, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight). De første fire argumenter beskriver kildeudsnittet.

ctx.drawImage(img, 0, 0, 50, 50, 10, 10, 100, 100); // crop 50x50 → scale to 100x100

Tegning af udfyldt tekst

fillText(text, x, y) tegner tekst ved hjælp af fillStyle. Som standard er y tekstens grundlinje.

ctx.fillStyle = "#2c3e50";
ctx.font = "24px sans-serif";
ctx.fillText("Hello Canvas", 20, 50);

Tekst med omrids

strokeText(text, x, y) tegner kun omridset ved hjælp af strokeStyle og lineWidth.

ctx.font = "40px bold serif";
ctx.lineWidth = 2;
ctx.strokeStyle = "navy";
ctx.strokeText("Outline", 20, 80);

Egenskaben font

font følger CSS-kortnotationen: [style] [weight] size family. Størrelse og skrifttypefamilie er påkrævet.

ctx.font = "italic bold 28px Georgia, serif";

Tekstjustering

textAlign (start/end/left/right/center) angiver den vandrette forankring, mens textBaseline (top/middle/alphabetic/bottom) angiver den lodrette forankring omkring det givne punkt.

ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.fillText("Centered", canvas.width / 2, canvas.height / 2);

Måling af tekst

measureText(text) returnerer et TextMetrics-objekt. Dets width fortæller, hvor bred teksten bliver, når den tegnes — det er afgørende for layout og ombrydning.

const m = ctx.measureText("How wide?");
console.log(m.width); // pixels

Enkel ombrydning af ord

Kombinér measureText med en løkke for at ombryde lange tekststrenge over flere linjer.

function wrap(ctx, text, x, y, maxW, lh) {
  let line = "";
  for (const word of text.split(" ")) {
    const test = line + word + " ";
    if (ctx.measureText(test).width > maxW && line) {
      ctx.fillText(line, x, y);
      line = word + " ";
      y += lh;
    } else {
      line = test;
    }
  }
  ctx.fillText(line, x, y);
}

Skygger for dybde

Skyggeegenskaber gælder for figurer, billeder og tekst: shadowColor, shadowBlur, shadowOffsetX/Y.

ctx.shadowColor = "rgba(0,0,0,0.4)";
ctx.shadowBlur = 8;
ctx.shadowOffsetX = 3;
ctx.shadowOffsetY = 3;
ctx.fillText("With shadow", 20, 60);

Hurtigt tjek

Test tegning af billeder og tekst.

Opsummering: Billeder og tekst

Du har lært at indlæse billeder og tegne dem med skalering og beskæring via drawImage, tegne tekst med fillText/strokeText, angive font, justere tekst, måle bredder med measureText og tilføje skygger. Dernæst ser du på animation.

Gratis at komme i gang

Lær JavaScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
59
Lektioner
200

Ofte stillede spørgsmål

Er lektionen “Arbejde med billeder og tekst” gratis?

Ja — alle 3 lektioner i læringssporet JavaScript Academy, inklusive “Arbejde med billeder og tekst”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. JavaScript Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Arbejde med billeder og tekst”?

Tegn billeder og stylede tekststykker på canvas. Du øver dig i JavaScript Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på JavaScript Academy?

Der kræves ingen tidligere erfaring. JavaScript Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Arbejde med billeder og tekst”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne JavaScript Academy-lektion?

Ja. Alle JavaScript Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Opsætning af Canvas-konteksten
  2. Tegning af figurer og kurver
  3. Arbejde med billeder og tekst
  4. Animation med requestAnimationFrame
← Tilbage til JavaScript Academy