ໂອກາດ Canvas DOM HTML

ຫຼັກ <canvas> ກໍານົດບໍລິເວນບັນບາງຕົວຊີ້ໃນ HTML Page.

API Canvas ອະນຸຍາດ JavaScript ຂຽນຮູບຮ່າງໃສ່ canvas.

API Canvas ສາມາດຂຽນຮູບຮ່າງ, ສາຍ, ວົງ, ບໍລິເວນ, ຂໍ້ຄວາມ, ພາບ, ສີ, ການແປງວົງວຽນ, ຄວາມແປງສະຫຼາດ, ແລະ ການປະຕິບັດພາບສີຫຼາຍອີກ.

ເພີ່ມ Canvas ໃສ່ HTML

ທ່ານສາມາດໃຊ້ອັບຍັດ <canvas> ເພື່ອເພີ່ມ canvas element ໃນລະດັບໃດໜຶ່ງຂອງ HTML Page:

ຕົວຢ່າງ

<canvas id="myCanvas" width="300" height="150"></canvas>

ທ່ານຈະທົດລອງດຽວກັນ.

ວິທີເຂົ້າຫາ Canvas Element

ທ່ານສາມາດໃຊ້ວິທີ HTML DOM getElementById() ເພື່ອເຂົ້າຫາຫຼັກ <canvas> ຢູ່ທີ່:

const myCanvas = document.getElementById("myCanvas");

ສຳລັບທີ່ຈະທຳນາຍທີ່ແຜ່ນໄຟແບບ, ທ່ານຕ້ອງສ້າງ context object 2D:

const ctx = myCanvas.getContext("2d");

ບັນທຶກ

HTML <canvas> element ບໍ່ມີພະຍາຍາມທຳນາຍ.

ທ່ານຕ້ອງນຳໃຊ້ JavaScript ເພື່ອທຳນາຍທີ່ພິມບັນຫາ.

ຄຳສັ່ງ getContext() ສົ່ງຄືນລະບົບວົງວອກທີ່ມີຊັບພະຍາຍາມວົງວອກ (ຄຳສັ່ງ).

ການທຳນາຍທີ່ແຜ່ນໄຟແບບ

ຫຼັງຈາກທີ່ຂຽນວົງ 2D context object, ທ່ານສາມາດທຳນາຍທີ່ແຜ່ນໄຟແບບ:

ວິທີການ fillRect() ທີ່ຂຽນວົງວອກສີດຳ, ທີ່ພົບຢູ່ຈຸດ 20,20. ວົງດັ່ງກ່າວມີມວນລວມວົງ 150 ປີ່ຊວນ, ວົງ 100 ປີ່ຊວນ:

ຕົວຢ່າງ

const myCanvas = document.getElementById("myCanvas");
const ctx = myCanvas.getContext("2d");
ctx.fillRect(20, 20, 150, 100);

ທ່ານຈະທົດລອງດຽວກັນ.

ການນຳໃຊ້ສີ

fillStyle ປະສົມປະສານຂອງການບັນຈຸສີທີ່ນຳການບັນຈຸກະຈັດ.

ຕົວຢ່າງ

const myCanvas = document.getElementById("myCanvas");
const ctx = myCanvas.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 150, 100);

ທ່ານຈະທົດລອງດຽວກັນ.

ທ່ານສາມາດນຳໃຊ້ຄຳສັ່ງ document.createElement() ເພື່ອສ້າງປະກອບ <canvas> ອື່ນໆ, ແລະເພີ່ມປະກອບນັ້ນໃຫ້ກັບເວັບໄຊ HTML ທີ່ມີຢູ່:

ຕົວຢ່າງ

const myCanvas = document.createElement("canvas");
document.body.appendChild(myCanvas);
const ctx = myCanvas.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 150, 100);

ທ່ານຈະທົດລອງດຽວກັນ.

ຫົວໜ້າ

ວິທີການທີ່ມັກການທຳນາຍທີ່ພົບໃນແຜ່ນໄຟແບບ.

  1. ການເລີ່ມວົງ - beginPath()
  2. ການຫົວໄປຫາຈຸດ - moveTo()
  3. ການຂຽນວົງວອກໃນວົງ - lineTo()
  4. ການຂຽນວົງວອກ - stroke()

ຕົວຢ່າງ

const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(20, 20);
ctx.lineTo(20, 100);
ctx.lineTo(70, 100);
ctx.stroke();

ທ່ານຈະທົດລອງດຽວກັນ.

ສີ, ຮູບແບບຫຼິ້ນ, ແລະຊັງລັງ

ຂໍ້ມູນ ການອະທິບາຍ
fillStyle ການຕັ້ງຕອນຫຼືກັບຄືນສີທີ່ນຳການບັນຈຸກະຈັດ.
strokeStyle ການຕັ້ງຕອນຫຼືກັບຄືນສີທີ່ນຳບາດຂວາງ, ການສະຫຼາກຫຼິ້ນສີຫຼິ້ນກະຈັດ.
shadowColor ການຕັ້ງຕອນຫຼືກັບຄືນສີທີ່ນຳສະຫຼາກຊັງລັງ.
shadowBlur ການຕັ້ງຕອນຫຼືກັບຄືນລະດັບຄວາມຫຼຸດສະຫຼາກຂອງຊັງລັງ.
shadowOffsetX 设置或返回阴影到形状的水平距离。
shadowOffsetY 设置或返回阴影到形状的垂直距离。
ກົນລະຍຸດ ການອະທິບາຍ
createLinearGradient() 创建线性渐变(用于画布内容)。
createPattern() 在指定方向重复指定的元素。
createRadialGradient() 创建径向/圆形渐变(用于画布内容)。
addColorStop() 规定渐变对象中的颜色和停止位置。

线条样式

ຂໍ້ມູນ ການອະທິບາຍ
lineCap 设置或返回线的端盖样式。
lineJoin 设置或返回两条线相交时创建的角的类型。
lineWidth ການຕັ້ງສະຖານະຫຼັກການຕັ້ງການທົດລອງຄະແນນຫຼືການທົດລອງຄະແນນ.
miterLimit ການຕັ້ງສະຖານະຫຼັກການຕັ້ງການທົດລອງຄະແນນສະໝອງຫຼືການທົດລອງຄະແນນຫຼືການທົດລອງຄະແນນ.

ບາບສະໝອງ

ກົນລະຍຸດ ການອະທິບາຍ
rect() ການສ້າງບາບສະໝອງ.
fillRect() ການສະແດງບາບສະໝອງທີ່ມີການບັນຈຸ.
strokeRect() ການສະແດງບາບສະໝອງທີ່ບໍ່ມີການບັນຈຸ.
clearRect() ການລົບສະໝອງຂອງຈຸດຂອງຕົວອອກຫຼືຂອງຕົວຄັງ.

ຫົວໜ້າ

ກົນລະຍຸດ ການອະທິບາຍ
fill() ການບັນຈຸການສະໝອງປະຈຳການສະແດງສະໝອງ.
stroke() ການສະແດງຫົວໜ້າທີ່ມີການກຳນົດ.
beginPath() ການເລີ່ມຫົວໜ້າຫຼືການທຳນາຍຫົວໜ້າປະຈຳຫົວໜ້າທີ່ມີການສະແດງ.
moveTo() ການປ່ຽນຫົວໜ້າຫາຈຸດທີ່ມີຫຼືຈຸດທີ່ມີສະໝອງສຸດທ້າຍຫຼືຈຸດທີ່ມີສະໝອງສຸດທ້າຍຫຼືຈຸດທີ່ມີສະໝອງສຸດທ້າຍ.
closePath() ການສ້າງການສະໝອງຈາກຈຸດທີ່ມີຫຼືຈຸດທີ່ມີສະໝອງສຸດທ້າຍຫຼືມີຈຸດທີ່ມີສະໝອງສຸດທ້າຍ.
lineTo() ການເພີ່ມຈຸດທີ່ໃຫຍ່ຫຼືການສ້າງການສະໝອງຈາກຈຸດທີ່ມີຫຼືຈຸດທີ່ມີສະໝອງສຸດທ້າຍ.
clip() ການຕັດການຂອງຫົວໜ້າທີ່ມີການສະແດງຫຼືຫົວໜ້າທີ່ມີການກຳນົດ.
quadraticCurveTo() ການສ້າງວົງຮອຍສອງຄັນບາດສະຈາກຫົວໜ້າ.
bezierCurveTo() ການສ້າງວົງຮອຍສາມຄັນບາດສະຈາກຫົວໜ້າ.
arc() ການສ້າງວົງຮອຍ/ວົງກວດ (ສຳລັບສ້າງວົງຮອຍຫຼືວົງກວດສ່ວນໜຶ່ງ).
arcTo() ການສ້າງວົງຮອຍ/ວົງກວດທີ່ຢູ່ລະຫວ່າງການສະໝອງສອງຫົວແຫວງ.
isPointInPath() ການກັບຄືນຈຸດທີ່ມີຂອງຈຸດທີ່ມີການສະໝອງຕາມການກຳນົດຂອງພາຍໃນຫົວແຜນງານ.

ການປ່ຽນແປງ

ກົນລະຍຸດ ການອະທິບາຍ
scale() ການໃຊ້ມູນຂອງການຕັ້ງສະຖານະປະຈຳຈຸດທີ່ມີ.
rotate() ການສະແດງການສະໝອງປະຈຳຈຸດທີ່ມີ.
translate() ການທີ່ທົດລອງການຕັ້ງສະຖານະ (0,0) ໃນແຜນງານ.
transform() ການປ່ຽນແປງການປ່ຽນແປງຂອງການສະແດງສະໝອງ.
setTransform() ການທີ່ທົດລອງການປ່ຽນແປງປະຈຳຄຳທີ່ມີການຕັ້ງສະຖານະຫຼັກອອກແບບສະຖານະສະໝອງ. transform().

ຄຳຂຽນ

ຂໍ້ມູນ ການອະທິບາຍ
font ການຕັ້ງສະຖານະຫຼັກວັດຖຸຂອງຄຳຂຽນ.
textAlign ການຕັ້ງສະຖານະຫຼັກການຕັ້ງວັດຖຸຂອງຄຳຂຽນ.
textBaseline 设置或返回绘制文本时使用的当前文本基线。
ກົນລະຍຸດ ການອະທິບາຍ
textBaseline ການດຳເນີນຂອງຄຳເວົ້າທີ່ມີການລະບຸ.
fillText() ການດຳເນີນຂອງຄຳເວົ້າທີ່ບໍ່ມີການລະບຸ.
strokeText() ການດຳເນີນຂອງຄວາມທີ່ຂະຫຍາຍຄວາມຂອງຄຳເວົ້າ.

measureText()

ກົນລະຍຸດ ການອະທິບາຍ
ການດຳເນີນພາບ drawImage()

ການດຳເນີນກັບພາບຖີນ

ຂໍ້ມູນ ການອະທິບາຍ
width ກັບຄືນຄວາມຫຼາຍຂອງ ImageData.
height ກັບຄືນຄວາມຫຼາຍຂອງ ImageData.
data ກັບຄືນອຸບັດຕິເຫດທີ່ສະແດງໃສ່ເບັນຂອງ ImageData.
ກົນລະຍຸດ ການອະທິບາຍ
createImageData() ສ້າງເອົາ ImageData ທີ່ບໍ່ມີສິນລະພາບ.
getImageData() ກັບຄືນ ImageData ທີ່ສະແດງໃສ່ເບັນ, ທີ່ສະແດງຄືນຂໍ້ມູນພາບທີ່ມີຢູ່ໃນບັນດາບໍລິໂສມັດທີ່ກຳນົດ.
putImageData() ການຈອດຄືນຂໍ້ມູນພາບຂອງຂອງ ImageData ທີ່ສະແດງໃສ່ເບັນ.

ການປະສົມ

ຂໍ້ມູນ ການອະທິບາຍ
globalAlpha ການປ່ຽນແປງ ຫຼື ການກັບຄືນຄວາມສະເປພາບຂອງການດຳເນີນຄວາມລັບທີ່ປະຈຸບັນ.
globalCompositeOperation ການປ່ຽນແປງ ຫຼື ການກັບຄືນຄວາມປົກກະຕິທີ່ຈະນຳມາສະແດງພາບໃຫມ່ສຳລັບພາບແບບທີ່ມີຢູ່.

ອື່ນໆ

ກົນລະຍຸດ ການອະທິບາຍ
save() ບັນທຶກສະຖານະຂອງພາຍໃນທີ່ປະຈຸບັນ.
restore() ກັບຄືນສະຖານະຂອງອຸບັດຕິເຫດບັນດາຂອງການບັນທຶກສະຖານະຂອງພາຍໃນ.
createEvent()
getContext()
toDataURL()

ອຸບັດຕິເຫດທີ່ປົກກະຕິ ແລະ ຂໍ້ມູນທີ່ປົກກະຕິ

canvas ບັນດາປະກອບເຂົ້າຊົມກັນສະໜອງບັນດາອຸບັດຕິເຫດທີ່ປົກກະຕິຂໍ້ມູນແລະອຸບັດຕິເຫດ.

ບັນດາໜ້ານອກທີ່ກ່ຽວຂ້ອງ

HTML 教程:HTML5 画布

HTML 图像教程:HTML Canvas 教程

ຄູ່ມື HTML:HTML <canvas> 标签