HTML Academy · Ders

Canvas Üzerinde Metin ve Görseller

Metin dizelerini görüntüleyin ve görselleri canvas üzerine çizin

3. ders / 413 adım

Canvas Üzerinde Metin ve Görseller, CoddyKit'te ücretsiz bir HTML Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, HTML Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. HTML Academy kursu toplamda 4 dersten oluşur.

Metin Çizme

Yazı tipini ayarlayın: ctx.font = "bold 24px sans-serif". Çizin: ctx.fillText("Hello", x, y) veya ctx.strokeText("Hello", x, y). Y koordinatı metin taban çizgisidir — metni bir sınırlayıcı kutu içinde doğru konumlandırmak için üst uzantı yüksekliğini bunun üzerine ekleyin.

Metin Hizalama

ctx.textAlign yatay hizalamayı denetler: "left" (varsayılan), "center", "right". ctx.textBaseline, y koordinatına göre dikey hizalamayı denetler: "top", "middle", "alphabetic" (varsayılan), "bottom". Ortalanmış metin için ikisini de "center" ve "middle" olarak ayarlayın.

Düzen için measureText

ctx.measureText("text"), genişlik ve yazı tipi ölçümlerini içeren bir TextMetrics nesnesi döndürür. Metin konumlarını dinamik olarak hesaplamak için kullanın — metni bir kutuda ortalamak, metni bir maxWidth değerinde satırlara bölmek veya etiketleri veri noktalarının yanında sağa hizalamak için.

Metin Satır Kaydırma

Tuvalde yerleşik metin satır kaydırma özelliği yoktur. Bunu kendiniz uygulayın: sözcük genişliklerini ölçün, maxWidth değerini aşana kadar biriktirin, ardından lineHeight aralıklarında yeni bir satıra geçin. Bu, tuval oluşturma kütüphanelerinde yaygın bir yardımcı işlevdir.

Görüntü Çizme

ctx.drawImage(image, dx, dy), bir HTMLImageElement, HTMLCanvasElement veya HTMLVideoElement'i (dx, dy) konumuna çizer. Piksellerin çizimden önce hazır olduğundan emin olmak için önce görüntüyü yükleyin ve onload işleyicisinde çizin.

const img = new Image();
img.onload = () => ctx.drawImage(img, 0, 0);
img.src = "photo.jpg";

Görüntüleri Ölçekleme

ctx.drawImage(image, dx, dy, dw, dh), görüntüyü dw x dh boyutlarına ölçekler. En-boy oranı otomatik olarak korunmaz — boyutları elle hesaplayın. En-boy oranını korumak için: dw = img.width * scale; dh = img.height * scale.

Görüntüleri Kırpma

Dokuz bağımsız değişkenli drawImage: ctx.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh). Kaynak dikdörtgeni (sx, sy, sw, sh), görüntüden kırpma yapar; hedef dikdörtgeni (dx, dy, dw, dh), kırpılan bölümü tuval üzerine yerleştirir ve ölçekler.

Görüntü Yumuşatma

ctx.imageSmoothingEnabled = false, görüntüler ölçeklenirken iki doğrusal enterpolasyonu devre dışı bırakır. Keskin ve yumuşatılmamış ölçekleme istendiğinde piksel sanatı için kullanın. Yumuşak ölçeklemenin daha iyi göründüğü fotoğrafik görüntülerde etkin bırakın (varsayılan).

Görüntü Kaynağı Olarak Tuval

Bir tuvali drawImage için kaynak olarak kullanarak bir tuvali diğerinin üzerine çizin. Bu, ekran dışı oluşturmayı mümkün kılar: karmaşık birleşimleri gizli bir tuvalde çizin, ardından her karede bu tuvali tek bir işlemle görünür tuvalin üzerine çizin.

globalAlpha ve Birleştirme

ctx.globalAlpha (0 ile 1 arasında), kendisinden sonra yapılan tüm çizimlere tekdüze saydamlık uygular. ctx.globalCompositeOperation, yeni çizimlerin mevcut piksellerle nasıl birleştirileceğini denetler: "source-over" (varsayılan), "multiply", "screen", "destination-out" (silme) ve daha fazlası.

Dışa Aktarım için toDataURL

canvas.toDataURL("image/png"), tuvali base64 PNG veri URL'si olarak dışa aktarır. Kullanıcının başlattığı indirme işlemi için kullanın: bir bağlantı öğesi oluşturun, href'i veri URL'sine ve download özniteliğini bir dosya adına ayarlayın, ardından öğeye program aracılığıyla tıklayın.

Bilginizi Sınayın

Metin çizerken ctx.textBaseline = "middle" neyi etkiler?

Özet

Tuval metni oluşturma; konumlandırma için ctx.font, fillText/strokeText, textAlign ve textBaseline değerlerini, düzen hesaplamaları için ise measureText yöntemini kullanır. drawImage ile görüntü çizimi ölçeklemeyi ve kırpmayı destekler; globalAlpha ve globalCompositeOperation birleştirmeyi denetler. toDataURL, tuvali indirme veya başka amaçlarla kullanmak üzere dışa aktarır.

Başlamak ücretsiz

Yapay zeka eğitmeniyle HTML öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
40
Dersler
159

Sıkça Sorulan Sorular

“Canvas Üzerinde Metin ve Görseller” dersi ücretsiz mi?

Evet — “Canvas Üzerinde Metin ve Görseller” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve HTML Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. HTML Academy kursu toplamda 4 dersten oluşur.

“Canvas Üzerinde Metin ve Görseller” dersinde ne öğreneceğim?

Metin dizelerini görüntüleyin ve görselleri canvas üzerine çizin HTML Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

HTML Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te HTML Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Canvas Üzerinde Metin ve Görseller” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu HTML Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her HTML Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Canvas ve 2B Bağlamı Ayarlama
  2. Dikdörtgen ve Yollar Çizme
  3. Canvas Üzerinde Metin ve Görseller
  4. requestAnimationFrame ile Animasyon
← HTML Academy Sayfasına Dön