рдЗрд╕ рднрд╛рдЧ рдореЗрдВ
[рдкрд░рд┐рд╡рд░реНрддрди,
рд░рдЪрдирд╛рдУрдВ
рдПрдиреАрдореЗрд╢рди
рдкрд┐рдХреНрд╕реЗрд▓ рд╣реЗрд░рдлреЗрд░]
рдкрд░рд┐рд╡рд░реНрддрди
рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░реЗрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЙрди рджреЛ рддрд░реАрдХреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬреЛ рдкрд┐рдЫрд▓реЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдереЗред
рд╕рд╣реЗрдЬреЗрдВ - рд╕реНрдЯреИрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ
рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ - рд╕реНрдЯреИрдХ рдХреЗ рд╢реАрд░реНрд╖ рд╕реЗ рд░рд╛рдЬреНрдп рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
рдПрдХ рд░рд╛рдЬреНрдп рдХрд╛ рдорддрд▓рдм рд╣реИ: рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдореИрдЯреНрд░рд┐рдХреНрд╕, рдПрдХ рдбреНрд░рд╛рдЗрдВрдЧ рдХреНрд╖реЗрддреНрд░, рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреБрдг: рд╕реНрдЯреНрд░реЛрдХрд╕рд╛рдЗрд▓, рдлрд┐рд▓реНрд╕рдЯрд╛рдЗрд▓, рдЧреНрд▓реЛрдмрд▓рдПрд▓реНрдлрд╛, рд▓рд╛рдЗрдирд╡рд┐рдб, рд▓рд╛рдЗрдирдХреИрдк, рд▓рд╛рдЗрдирдЬреЙрдЗрди, рдореИрдЯрд░рд▓рд┐рдорд┐рдЯ, рд╢реИрдбреЛрдУрд╕реЗрдЯрдПрдХреНрд╕, рд╢реИрдбреЛрдСрдлрд╕реЗрдЯ, рд╢реИрдбреЛрдмреНрд▓реЙрдпрд░, рд╢реИрдбреЛрдХреНрд▓реЛрд░, рдЧреНрд▓реЛрдмрд▓рдХрдореНрдкреЛрдЗрдЯрдСрдкрд░реЗрд╢рди, рдлреЙрдиреНрдЯ, рдЯреЗрдХреНрд╕реНрдЯ, рдЯреЗрдХреНрд╕реНрдЯ, рдЯреЗрдХреНрд╕реНрдЯред
рдЪрд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВ
translate(float x, float y)
- рдкрд┐рдЫрд▓реА рд╕реНрдерд┐рддрд┐ рд╕реЗ x рдФрд░ y рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрддреНрддрд┐ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
ctx.save()
рдЪрд▓рд┐рдП рдмрд╛рд░реА рд╣реИ

rotate(float angle)
- рдПрдмреНрд╕рд╕рд┐рд╕ рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░ рдХреЛрдг рдХреЛрдг рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд░реЗрдВ, рдпрд╣ рднреА рдордд рднреВрд▓рдирд╛ рдХрд┐ рдХреЛрдг рдХреЛ рд░реЗрдбрд┐рдпрди рдореЗрдВ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЛрдг рдХреЛ рд░реЗрдбрд┐рдпрди рдореЗрдВ рдбрд┐рдЧреНрд░реА рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдбрд┐рдЧреНрд░реА рдХреЛ рдкрд╛рдИ рд╕реЗ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдФрд░ 180 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЕрд░реНрдерд╛рдд, рд░реЗрдб = рдбрд╛рдЙрди * рдореИрде.рдЖрдИ // 180
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ctx.translate (100,100) рд▓рд╛рдЗрди рдХреЗ рдмрд╛рдж рдЬреЛрдбрд╝реЗрдВ: ctx.rotate (45 * Math.PI / 180)
рдХрдореА / рд╡реГрджреНрдзрд┐

scale(float x, float y)
- x рдФрд░ y рдЕрдХреНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдкреИрдорд╛рдирд╛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ctx.rotate (45 * Math.PI / 180) рдХреЛ ctx.scale (0.65% 1) рд╕реЗ рдмрджрд▓реЗрдВ
рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЧреБрдгрд╛ рдХрд░реЗрдВ
transform(float m11, float m12, float m21, float m22, float dx , float dy)
- рдкреБрд░рд╛рдиреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдирдП рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ рдЧреБрдгрд╛ рдХрд░рддрд╛ рд╣реИред
рдореИрдЯреНрд░рд┐рдХреНрд╕ рд▓рд╛рдЧреВ рдХрд░реЗрдВ

setTransform(float m11, float m12, float m21, float m22, float dx , float dy)
- рдирдпрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рджреЗрдЦреЗрдВред
var img = new Image(); img.onload = function(){ ctx.save() ctx.setTransform(1,0.5,0,1,1,1) ctx.drawImage(img,0,0,78,50) ctx.restore() } img.src = 'brick.jpg';
рдореИрдВрдиреЗ рдПрдХ рдИрдВрдЯ рдХреА рджреАрд╡рд╛рд░ рдХреА рддрд╕реНрд╡реАрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдФрд░
рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрддрд░рдиреА рдХреА ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк
рдиреНрдпреВрдЯреЛрдЪрдХрд╛ рд╕реЗ рд╡рд┐рд╖рдп рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ
рд░рдЪрдирд╛рдУрдВ
рд░рдЪрдирд╛ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкреНрд░рдХрд╛рд░

GlobalCompositeOperation рд╕рдВрдкрддреНрддрд┐ рдХрдВрдкреЛрдЬрд╝рд┐рд╢рди рдСрдкрд░реЗрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЗрд╕рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ
рдХреИрдирд╡рд╕ рдЪреАрдЯ рд╢реАрдЯ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдЪрд┐рддреНрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ, рдиреАрд▓реА рдЖрдпрдд рдкрд╣рд▓реЗ рдЦреАрдВрдЪреА рдЧрдИ рдереА, рдФрд░ рд▓рд╛рд▓ рдШреЗрд░рд╛ рджреВрд╕рд░рд╛ рд╣реИ рдФрд░ GlobalCompositeOperation рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗрдВрдЧреЗред ред
GlobalAlpha рд╕рдВрдкрддреНрддрд┐

GlobalAlpha рдЧреБрдг - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдРрд╕рд╛ рдХрд╛рд░рдХ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдХреА рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЛ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ 0 <= GlobalAlpha <= 1. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
ctx.globalAlpha = 0.6; ctx.fillRect(0,0,100,100) ctx.fillRect(50,50,100,100)
рдПрдиреАрдореЗрд╢рди
requestAnimationFrame
рдпрджрд┐ рдкрд╣рд▓реЗ рдЯрд╛рдЗрдорд░ рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рдерд╛, рддреЛ рдЕрдм рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрд░реЛрдзрдЕрдирдореАрдХрд░рдг рдлрд╝рдВрдХреНрд╢рди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ, рд╡рд┐рд╖рдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП
azproduction рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдкрдврд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рдПрдиреАрдореЗрд╢рди рдХрд╛ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд
рдПрдиреАрдореЗрд╢рди рдХрд╛ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рдкреБрд░рд╛рдиреЗ рдлреНрд░реЗрдо рдХреЛ рдорд┐рдЯрд╛рдирд╛ рдФрд░ рдПрдХ рдирдпрд╛ рдбреНрд░рд╛ рдХрд░рдирд╛ рд╣реИред рдПрдХ рдкреБрд░рд╛рдиреЗ рдлреНрд░реЗрдо рдХреЛ рдорд┐рдЯрд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдХреНрд▓рд┐рдпрд░рдЯреНрд░реИрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ requestAnimationFrame рдкрд░рд┐рднрд╛рд╖рд╛ рдЬреЛрдбрд╝реЗрдВ:
var x = 400, y = 300; (function loop(){ ctx.clearRect(0,0,800,600); ctx.beginPath(); ctx.arc(x++,y++,50,0,Math.PI*2,false); ctx.fill() requestAnimFrame(loop); })();
рдЖрдк
рдЯреНрд░рд┐рдХ рд╕реЗ рд╡рд┐рд╖рдп рдореЗрдВ рдПрдиреАрдореЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ
1 рдЦреЗрд▓! = 1 рдХреИрдирд╡рд╛рд╕
рдореИрдВрдиреЗ рдЗрд╕ рдирд┐рдпрдо рдХреЛ рдХреИрдирд╡рд╛рд╕ рддреНрд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рдореЗрдВ рджреЗрдЦрд╛ рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдирд┐рдпрдо рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рдЬрдЯрд┐рд▓ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЗрд╕ рдЫрд╡рд┐ рдХреЛ рдПрдХ рдЖрднрд╛рд╕реА рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╣рд░ рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╣рд░ рдЪреАрдЬ рдХреЛ рдПрдХ рдЖрднрд╛рд╕реА рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдврд╛рд▓рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрдЯрд┐рд▓ рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рда рдпрд╛ рдврд╛рд▓ )ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ jsperf.com рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ , рдЖрджрд░реНрд╢ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрд░реНрде рд╕реНрдкрд╖реНрдЯ рд╣реИред
рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░реЗрдВ
рдХреИрдирд╡рд╕ рдореЗрдВ, рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рдкреВрд░реНрдг рдкрд╣реБрдВрдЪ рднреА рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдк рдЕрджреНрднреБрдд рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдлрд┐рд▓реНрдЯрд░ рдФрд░ рдЗрд╕реА рддрд░рд╣), рдФрд░ рд╕рд░рд▓ рдЪреАрдЬреЛрдВ рдХреЛ рднреА рдмрд╣реБрдд рдЬрд▓реНрджреА рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдкрд┐рдХреНрд╕рд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЗрдореЗрдЬрдбрд╛рдЯрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рддреАрди рдЧреБрдг рдЪреМрдбрд╝рд╛рдИ, рдКрдВрдЪрд╛рдИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдордЭрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ) рдФрд░ рдбреЗрдЯрд╛ - рдЖрд░, рдЬреА, рдмреА рдХреА рдПрдХ рд╕рд░рдгреА, рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдиред
рдкрд┐рдХреНрд╕реЗрд▓ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдкрд┐рдХреНрд╕реЗрд▓ рдбреЗрдЯрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд░рдгреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд┐рдХреНрд╕реЗрд▓ рд╕рдордп рдХреА рд╕рдВрдЦреНрдпрд╛ 4 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИред рд╕рднреА рддрддреНрд╡ 0..255 рдХреА рд╕реАрдорд╛ рдореЗрдВ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВред
рд╕рд╣рд┐рдд рдЕрд▓реНрдлрд╛ рдЪреИрдирд▓ 0..255 рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдЪрд┐рддреНрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЪрд╛рд░ рдорд╛рди r, g, b, рдПрдХ рд░реВрдк, рдПрдХ рдЦрдВрдб, рдЦрдВрдб, рдмрджрд▓реЗ рдореЗрдВ, рдПрдХ рдПрдХрд▓ рдЕрд╡рд┐рднрд╛рдЬреНрдп рд╕реЗрд▓ рд╣реИ рдЬреЛ рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдЦрд╛рд▓реА рдЗрдореЗрдЬрдбрд╛рдЯрд╛ рдмрдирд╛рдирд╛
ImageData = context.createImageData(int w, int h)
- рдХреНрд░рдорд╢рдГ рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ w рдФрд░ h рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА ImageData рдмрдирд╛рдПрдЧрд╛ред
ImageData = context.createImageData(imageData)
- рдкреНрд░реЗрд╖рд┐рдд рдЗрдореЗрдЬрдбреЗрдЯрд╛ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рдЗрдореЗрдЬрдбрд╛рдЯрд╛ рдмрдирд╛рдПрдЧрд╛, рдзреНрдпрд╛рди рджреЗрдВ: рдбреЗрдЯрд╛ рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
ImageData рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
context.putImageData(imageData imgd, int x, int y)
- рдЫрд╡рд┐ рдмрд┐рдВрджреБ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреЗ рд╕рд╛рде xy рдмрд┐рдВрджреБ рд╕реЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдХреИрдирд╡рд╛рд╕ рд╕рд░рдгреА рдХреЛ рдмрджрд▓реЗрдВред
рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ
рд▓реЗрдХрд┐рди рдкрд░реНрдпрд╛рдкреНрдд рд╕рд┐рджреНрдзрд╛рдВрдд, рдЪрд▓реЛ рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддреЗ рд╣реИрдВ, рдЪрд▓реЛ рдмрд┐рдирд╛ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдлрд╝рдВрдХреНрд╢рди y = x * x рдХрд╛ рдЧреНрд░рд╛рдл рдЦреАрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:
var imgd = ctx.createImageData(800, 600); var x,y,segment,xround,yround; for (x=-40 ; x<=40 ; x+=0.01) { y = x*x; xround = ~~(x+0.5); yround = ~~(y+0.5); segment = ((-yround+400)*imgd.width + xround + 40)*4; imgd.data[segment+3] = 255; } ctx.putImageData(imgd, 0, 0);
рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ
fillRect рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдорд╛рди
рдХреЛрдб рд▓рд┐рдЦрд╛
, рдлрд┐рд░ рд╕реЗ jsperf рдкрд░, рдлрд┐рд░ рднреА, рдПрдХ рдмрд┐рдВрджреБ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ fillRect рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ imageData рдмрдирд╛рдиреЗ рд╕реЗ рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рд╣реЛрддрд╛ рд╣реИред
рдкрд┐рдХреНрд╕реЗрд▓ рд╣реЗрд░рдлреЗрд░

ImageData = context.createImageData(int x, int y, int w, int h)
- рдХреНрд░рдорд╢рдГ (x; y) рдФрд░ рдЪреМрдбрд╝рд╛рдИ, рдКрдБрдЪрд╛рдИ w рдФрд░ h рдкрд░ рдКрдкрд░реА рдмрд╛рдПрдБ рд╢реАрд░реНрд╖ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдпрддрд╛рдХрд╛рд░ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреИрдирд╡рд╛рд╕ рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдореЗрдЬрдбрд╛рдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдлреЛрдЯреЛ рдореЗрдВ рд╕рдлреЗрдж рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
var img = new Image(); img.src = 'test.jpg';