TOPy[W > TOP > JavaScriptɂ‚ > JavaScript̐}``
@wywm@z[y[W

@@wywm@@
@|JavaScript̐}``|@@
ŏIXVF2025N15

@JavaScript̐}``֘Aɂ‚Đ܂B
@HTMLł́AimageurlƂURLɒuĂ摜\ꍇA<img>^OpāA
<img src="imageurl">
Ƃ邱ƂɂA摜̕\s܂BƓƂImageIuWFNgpJavaScriptōsƂł܂B܂AImageNXconstructorp
img1 = new Image();
ƂC[WEIuWFNgimg1쐬Aimg1srcvpeBɉ摜̈ʒuw肵ĂA
img1.src = "imageurl";
ɁAimg1ebody^O̎qƂDOMc[ɂ‚ȂׂA
document.body.appendChild(img1);
Ƃ邱ƂɂA摜\邱Ƃł܂BsrcvpeBɂ́Aq܂ALoXEIuWFNgcanvas1pāAAj̃LN^XvCgƂĉ摜Aȉ̂悤stylevpeBleftCtopɁA
img1.style.left = "227px";
img1.style.top = "179px";
ƕ\ʒuݒAtoDataURL\bhpāA
img1.src = canvas1.toDataURL();
Ƃcanvas1URLimg1srcvpeBɐݒ肵ALoXEIuWFNgɕ`LN^wʒuɕ\ł܂BtopCleft̒lςčs΁Ả摜𓮂‚•\邱Ƃł܂BȉAImageIuWFNgALoXEIuWFNgɂ‚Đ܂B

Imagevfconstructor
new Image()
Imagevf𐶐܂B

Imagevf̃vpeB
ImageElement.alt
@摜ǂݍ܂ȂƂɕ\֕w肵܂B

ImageElement.src
@摜ʒuURLw肵܂B

ImageElement.width
@摜\镝w肵܂B

ImageElement.height
@摜\鍂w肵܂B

LoXEIuWFNg

@JavaScript̃LoX@\gƁAʂɐ}``sƂł܂BmɌƁAcanvas̓uEUɑgݍ܂Ă@\ŁAJavaScript͂LoXEIuWFNgƂėp”\ɂ铭Ă܂B
ȉł́AHTMLLq̒(widthCheight̒l͂‚ł悢ł)
<canvas class="cv1" width="800" height="800">canvas@\ȂuEUł̑֕</canvas>
ƂƂ܂BJavaScript̋Lq̒
canvas = querySelector(".cv1");
ƂāALoXvf擾A
ctx = canvas.getContext("2d");
ƂāA2I`ReLXgctx擾ƂzŐ܂B܂AWw肵ĕ`悷Ƃ̍WłAHTMLLq̒LoXvfzuʒuW(0, 0)ƂāAʉEpxPʂxWAʉpxPʂyWƂ܂B

LoXvfCanvasElement\bh

CanvasElement.getContext(type)
@type"2d"̏ꍇɂ2I`ReLXgԂ܂Btype"webgl"C"webgl2"C"webgpu"̏ꍇ3I`ReLXgԂ܂(ǂw肷邩̓uEUɂĈقȂ܂)B

CanvasElement.toDataURL(type)
@canvasɕ\Ă摜ۑURL(ۂɂbase64`ƌĂ΂镶)𐶐܂Btypeɂ́A"image/jpeg"܂"image/png"w肵܂(image/pngftHgAuEUɂđΉ`قȂ܂)Bȉ̂悤ɁAImagevfAsrcvpeBcanvas1URLw肷ƁAʂcanvas2(ReLXgctxƂ܂)̒canvas1ō쐬ꂽ摜\邱Ƃł܂B
img1 = new Image();
img1.src = canvas1.toDataURL();
ctx.drawImage(img1, 50, 50);

LoXvfCanvasElement̃vpeB
@ImagevfƓlɁAwidthCheightƂvpeB܂B

2I`ReLXgctx\bĥ\IȂ͈̂ȉ̒ʂłB

clearRect
@`̈𓧖Fœh‚Ԃ`悳Ă}`܂B
ctx.clearRect(x, y, width, height);
(x, y)n_ƂāAwidthCheight̋`̈܂B

fillRect
@``܂B`h‚Ԃ܂B
ctx.fillText(x, y, width, height);
(x, y)n_ƂāAwidthCheight̋`̈Actx.fillStylevpeBŎw肵@(h‚ԂFȂǂw)ŁAh‚Ԃ܂B

strokeRect
@`g`܂B
ctx.strokeRect(x, y, width, height);
(x, y)n_ƂāAwidthCheight̋`̘gActx.strokeStylevpeBŎw肵@(g̐FȂǂw)Actx.lineWidthŎw肷Actx.lineJoinŎw肷ڍ`ŕ\܂B

beginPath
@VpX̍쐬n߂܂B̃pX͎̂Ă܂B
ctx.beginPath();
̌ɁApXĂ܂B

moveTo
@pX̋N_w肵܂B
ctx.moveTo(x, y);
(x, y)pX̋N_Ƃ܂B

lineTo
@݂̃pẌʒuw肵_ւ̃pX܂B
ctx.lineTo(x, y);
moveTo\bhlineTo\bhŎw肳Ă_(x, y)ԃpX܂B̎_Ő`悳̂ł͂ȂAstroke()\bhCfill()\bhŕ`悳܂B

closePath
@pX̐擪ƖԃpXA‚}`ƂȂpX܂B
ctx.closePath();

rect
@`ƂȂpX܂B
ctx.rect(x, y, width, height);
(x, y)n_ƂāAwidthCheight̋`̃pX܂B

arc
@~A~ʂƂȂpX܂B
ctx.arc(x, y, r, sangle, eangle, clockwise);
(x, y)𒆐SƂ锼ar̉~ʂ`܂BclockwiséAJn_玞v(false)Av(true)w肵܂Bsangle͉~ʂ̊Jn_Aeangle͉~ʂ̏I_AWAPʂ̓åpxŎw肵܂B~πJavaScriptł́AMath.PIƂČĂяoƂł܂B~`ꍇ́Asangle0Ceangle2*Math.PIƂ܂BpX̐擪ł͂ȂꍇApX̖Ɖ~ʂ̊Jn_ԃpX܂B

arcTo
@pX̖ƒŐڑ~ʂ܂B
ctx.arcTo(x1, y1, x2, y2, r);
pX̖(x1, y1)Ԓ̂ApX̖Ɣar̉~CƂ̐ړ_P܂ł̃pXA(x1, y1)(x2, y2)Ԓ̂Aar̉~CƂ̐ړ_Q(x2, y2)܂ł̃pXAPJn_AQI_Ƃ锼ar̉~ʂpXɉ܂BAAweɂẮA~ʂ쐬Ȃꍇ܂B

fillText
@`悵܂B
ctx.fillText(string, x, y);
ctx.fillStyleŎw肷FActx.fontŎw肷镶tHgActx.textAlignctx.textBaseLineŎw肳镶zuɏ]āAstring\܂B

strokeText
@𒆔\܂B
ctx,strokeText(string, x, y);
ctx.strokeStyleŎw肷FActx.fontŎw肷镶tHgActx.textAlignctx.textBaseLineŎw肳镶zuɏ]āAstring𒆔ŕ\܂B

fill
@݂̃pX̏I_Ǝn_сActx.fillStyleŎw肵@(h‚ԂFȂǂw)Ah‚Ԃ܂B
ctx.fill();

stroke
@݂̃pX̏I_Ǝn_сActx.strokeStyleŎw肵@(g̐FȂǂw)ŁActx.lineWidthŎw肷Actx.lineJoinŎw肷ڍ`ŁA\܂B
ctx.stroke();

drawImage
@imageŎw肳摜Awʒuɕ\܂B
ctx.drawImage(image, x, y);
imageɂ́AImageCX^Xw肵܂BimageIuWFNgsrcvpeBŁAOō쐬ꂽ摜Aʂcanvasō쐬ꂽ摜ݒ”\łB

quadraticCurveTo
@݂̃pX̏I_Ǝw_ԋȐ̃pX쐬܂
ctx.quadraticCurveTo(cpx, cpy, x, y);
pX̖(cpx, cpy)ԒƁA(cpx, cpy)(x, y)Ԓ2ڐƂȐ̃pX܂B

clip
@݂̃pXŃLoXʂ؂A̒Ō㑱̐}`\܂B̃\bhɂ‚ẮAu[][vƂ؂蔲[KpAƂ̂ƂŁAlbgĂ݂ĂB

scale
@}`Lk܂B
ctx.scale(xe, ye);
scale֐s̐}``́Axxe{Ayye{Ċg\܂Bw肷Ɣ]܂B

rotate
@}`]܂B
ctx.rotate(angle);
rotate֐s̐}``́A(0, 0)𒆐SɎvangleWA]ĕ\܂Bϊ_ς邽߂ɂ́Atranslate\bhg܂B

translate
@}``̌_ړ܂B
ctx.taranlate(xd, yd);
translate֐s̐}``́A_(0, 0)(xd, yd)Ɉړ̂悤ɍs܂B‚܂AW(x, y)w肷ƁA(x+xd, y+yd)w肵̂悤ɕ\s܂B

createImageData
@ImageDataIuWFNg𐶐܂B
ctx.createImageData(width, height);
@widthCheightImageDataIuWFNg𐶐AImageDataIuWFNgԂ܂Bwidth*heightsNZ琬ImageDataIuWFNg͔z\ĂAlength(ImageData.data.lengthƂĎ擾ł܂)́Awidth*height*4ł(lengthoCg̃f[^Ă܂)B‚܂1sNZɂ‚4oCg̃f[^ĂzImageData.data[n]ƂāAn4Ŋ؂鐔̂Ƃ(R)An4Ŋ1]Ƃ(G)An4Ŋ2]Ƃ(B)A4Ŋ3]Ƃx(傫ȂقǕs)\܂Brbg}bvʼn摜`ꍇɎg܂BputImageData\bh̎sɂʂɕ\܂B

getImageData
@LoX摜f[^擾܂B
ctx.getImageData(x, y, width, height);
LoXɕ`悳Ă摜̂A(x, y)n_ƂAwidthCheight̋`̈𔲂oImageDataIuWFNg𐶐܂B

putImageData
@ImageDataIuWFNg̃f[^LoXɕ`悵܂B
ctx.putImageData(imagedata, x, y);
ImageDataIuWFNgimagedataLoXɁA(x, y)n_Ƃĕ`悵܂B

save
@̕`󋵂X^bNɑޔ܂B
ctx.save();
ꎞIɃLoX̏󋵂ύXA܂gAƂƂɁAꎞIɁApXAFAh‚ԂFAAȂǂ̏󋵂save\bhŃX^bNɑޔAƂrestore\bhɂ蕜A邱Ƃł܂B

restore
@X^bNɑޔĂLoX̏󋵂𕜊܂B
ctx.restore()

2I`ReLXgctx̃vpeBɂ͈ȉ̂̂܂B

ctx.strokeStyle
@֊s̐F擾Aݒ肵܂BFw肷ꍇ́Actx.strokeStyle = "#8f74b3";̂悤RGB̒l16iŎw肷邩Actx.strokeStyle = "rgba(125, 79, 202, 127)";(ԗΐ‚̔ZxAx)C邢͕WF\ctx.strokeStyle = "palegreen";̂悤Ɏw肵܂B

ctx.fillStyle
@strokestylevpeBƓlɂāA}`̓h‚ԂF擾Aݒ肵܂BcreateLinearGradient()\bhCcreateConicGradient()\bhpɂOf[VAcreatePattern()\bhpɂp^[̐ݒs܂BFẃAstrokeStyle̐ݒƓlłB

ctx.lineWidth
@pxPʂŎw肵܂B͒SL悤ɕ`悳܂B

ctx.lineCap
@̒[_`擾Aݒ肵܂B"butt"([_Ő؂ꂽ`ɂȂ܂)C"round"(ۂ݂тт`ł)C"square"([_𒆐SƂA1ӂ̒Ƃlp`ɂȂ܂)3ʂ肪ݒ”\łB

ctx.lineJoin
@̐܂Ȃ`擾Aݒ肵܂B"bevel"(p؂ꂽ`)C"round"(ۂ݂тт`)C"miter"(p`)3ʂ肪”\łB

ctx.miterLimit
@ctx.lineJoin"miter"łƂAp܂ɉsƐȂ肷̂ŁA܂Ȃ̓Ɛ̐[̋̌El𐔒lŐݒ肵܂BEl𒴂ꍇA"bevel"̂悤Ȍ`ɂȂ܂B

ctx.font
@\Ƃ̃tHg擾Aݒ肵܂BCSS̃tHg̃X^CLqŎw肷font-styleCfont-familyCfont-sizeCfont-weight󔒂ŋ؂ƂĎw肵܂BftHǵA"10px sans-serif"łBC^bNArialtHg24pxTCYŕ\ꍇA
ctx.font = "italic bold Arial 24px";
Ɛݒ肵܂BF́AfillStylevpeBAstrokeStylevpeBŐݒ肵܂B̕`́AfillText\bhAstrokeText\bhōs܂B

ctx.textAlign
@̕zu擾Aݒ肵܂B"left"(l)A"center"()A"right"(El)3ʂ肪”\łB

ctx.textBaseline
@c̕zu擾Aݒ肵܂B"top"([ɑ܂)C"middle"(ɑ܂)C"bottom"(ӂɑ܂)C"alphabetic"(At@xbg\ő܂)Cideographic(ł͂g܂)w”\łBftHǵA"alphabetic"łB

ctx.shadowColor
@e̐Frgba(ԗΐ‚̔ZxAx)Ŏw肵܂B

ctx.globalAlpha
@`悷}`̓x0 ()`1.0 (s)̐lŁA擾Aݒ肵܂B


TOPy[Wɖ߂@@
TOP@@
wywmē@@
w̃y[W@@
̃y[W@@
yVuO@@
wywmuO@@
wywmtwitter@@
񍐃uO@@
vCoV[E|V[


yLz@LłB̊F܂̂x肽A낵肢܂B
yLz@L͂܂łłB

© 2005-2025@F(L)