JavaScript ਕੈਨਵਸ ਵਿੱਚ ਮਾਸਕਡ ਚਿੱਤਰ ਬਾਰਡਰਾਂ ਵਿੱਚ ਮੁਹਾਰਤ ਹਾਸਲ ਕਰਨਾ
ਮਲਟੀਪਲ ਪਿਕਚਰ ਫਿਊਜ਼ਨ JavaScript ਵਿਜ਼ੂਅਲ ਇਫੈਕਟਸ ਬਣਾਉਣ ਵਿੱਚ ਇੱਕ ਆਮ ਕਦਮ ਹੈ। ਇੱਕ ਮਾਸਕ ਦੇ ਨਾਲ ਇੱਕ ਚਿੱਤਰ ਦੇ ਦੇਖਣਯੋਗ ਖੇਤਰਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨਾ ਇੱਕ ਆਮ ਤਕਨੀਕ ਹੈ. ਹਾਲਾਂਕਿ ਇਹ ਵਿਲੱਖਣ ਰੂਪਾਂ ਨੂੰ ਬਣਾਉਣ ਲਈ ਮਦਦਗਾਰ ਹੈ, ਪਰ ਉਹਨਾਂ ਨਕਾਬ ਵਾਲੀਆਂ ਆਕਾਰਾਂ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਬਾਰਡਰ ਜੋੜਨਾ ਚੁਣੌਤੀਪੂਰਨ ਹੋ ਸਕਦਾ ਹੈ। ਹਾਲਾਂਕਿ ਦ ਕੈਨਵਸ JavaScript ਵਿੱਚ ਤੱਤ ਵਿਆਪਕ ਚਿੱਤਰ ਹੇਰਾਫੇਰੀ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ, ਇੱਕ ਚਿੱਤਰ ਦੇ ਆਲੇ ਦੁਆਲੇ ਬਾਰਡਰ ਨੂੰ ਅਨੁਕੂਲ ਕਰਨਾ ਆਸਾਨ ਨਹੀਂ ਹੈ ਜਿਸਨੂੰ ਮਾਸਕ ਕੀਤਾ ਗਿਆ ਹੈ।
ਡਿਵੈਲਪਰ ਦੇ ਨਾਲ ਕਲਪਨਾਤਮਕ ਤਰੀਕਿਆਂ ਨਾਲ ਮਾਸਕ ਅਤੇ ਕਲਿੱਪ ਤਸਵੀਰਾਂ ਨੂੰ ਲਾਗੂ ਕਰ ਸਕਦੇ ਹਨ ਕੈਨਵਸ API, ਹਾਲਾਂਕਿ ਮੂਲ ਰੂਪ ਵਿੱਚ, ਕੋਈ ਵੀ ਬਾਰਡਰ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ ਜੋ ਕੈਨਵਸ ਦੇ ਆਇਤਾਕਾਰ ਆਕਾਰ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ। ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਬਾਰਡਰ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ ਜੋ ਇੱਕ ਗੁੰਝਲਦਾਰ ਆਕਾਰ ਦੇ ਕਿਨਾਰਿਆਂ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ ਜੋ ਇੱਕ ਮਾਸਕ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ ਇਹ ਇੱਕ ਸਮੱਸਿਆ ਪੇਸ਼ ਕਰਦਾ ਹੈ। ਉਦੇਸ਼ ਸਿੱਧੇ ਆਇਤਾਕਾਰ ਬਾਰਡਰ ਤੋਂ ਪਰੇ ਮਾਸਕ ਦੀ ਸਹੀ ਯਾਤਰਾ ਦੀ ਪਾਲਣਾ ਕਰਨਾ ਹੈ।
ਇਹ ਪੋਸਟ ਇਹ ਦੱਸੇਗੀ ਕਿ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਇੱਕ ਚਿੱਤਰ ਮਾਸਕ ਨੂੰ ਕਿਵੇਂ ਲਾਗੂ ਕਰਨਾ ਹੈ ਅਤੇ, ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਤੌਰ 'ਤੇ, ਇਹ ਕਿਵੇਂ ਯਕੀਨੀ ਬਣਾਇਆ ਜਾਵੇ ਕਿ ਮਾਸਕ ਵਾਲੀ ਤਸਵੀਰ ਦੀ ਵੱਖਰੀ ਸ਼ਕਲ ਇੱਕ ਬਾਰਡਰ ਨਾਲ ਘਿਰੀ ਹੋਈ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਅਸੀਂ ਇੱਕ ਫੰਕਸ਼ਨ ਉੱਤੇ ਜਾਵਾਂਗੇ ਜੋ ਮਾਸਕਿੰਗ ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੈ ਪਰ ਅਜੇ ਤੱਕ ਇੱਕ ਪਰਿਭਾਸ਼ਿਤ ਬਾਰਡਰ ਹੱਲ ਨਹੀਂ ਹੈ।
ਤੁਸੀਂ ਕੈਨਵਸ ਵਿੱਚ ਕੰਪੋਜ਼ਿਟ ਓਪਰੇਸ਼ਨਾਂ ਨਾਲ ਕੰਮ ਕਰਨਾ ਸਿੱਖ ਕੇ ਬਾਰਡਰ ਦੀ ਦਿੱਖ ਨੂੰ ਵਧੀਆ ਬਣਾ ਸਕਦੇ ਹੋ। ਆਉ ਸ਼ੁਰੂ ਕਰੀਏ ਅਤੇ ਵੇਖੀਏ ਕਿ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੀਆਂ ਕੈਨਵਸ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਮਾਸਕ ਕੀਤੇ ਚਿੱਤਰ ਦੇ ਦੁਆਲੇ ਲੋੜੀਂਦੀ ਬਾਰਡਰ ਜੋੜਨ ਲਈ ਕਿਵੇਂ ਵਰਤਣਾ ਹੈ।
ਹੁਕਮ | ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ |
---|---|
globalCompositeOperation | ਕੈਨਵਸ 'ਤੇ ਡਰਾਇੰਗ ਕਿਰਿਆਵਾਂ ਦੀ ਰਚਨਾ ਨੂੰ ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਉਦਾਹਰਨ ਵਿੱਚ globalCompositeOperation ='ਸਰੋਤ-ਇਨ' ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਮਾਸਕ ਚਿੱਤਰ ਮੁੱਖ ਤਸਵੀਰ ਨੂੰ ਕਲਿੱਪ ਕਰਦਾ ਹੈ ਤਾਂ ਜੋ ਸਿਰਫ਼ ਉਹ ਖੇਤਰ ਦਿਖਾਈ ਦੇ ਸਕਣ ਜੋ ਇੱਕ ਦੂਜੇ ਨੂੰ ਕੱਟਦੇ ਹਨ। |
toDataURL() | ਕੈਨਵਸ ਦੀ ਜਾਣਕਾਰੀ ਨੂੰ ਬੇਸ64 ਨਾਲ ਏਨਕੋਡ ਕੀਤੇ ਚਿੱਤਰ ਵਿੱਚ ਬਦਲਦਾ ਹੈ। ਇਹ ਮਾਸਕ ਅਤੇ ਬਾਰਡਰ ਨੂੰ ਲਾਗੂ ਕਰਨ ਤੋਂ ਬਾਅਦ ਮੁਕੰਮਲ ਚਿੱਤਰ ਨੂੰ PNG ਵਜੋਂ ਵਰਤਣਾ ਸੰਭਵ ਬਣਾਉਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਦਾ ਚਿੱਤਰ ਆਉਟਪੁੱਟ canvas.toDataURL('image/png') ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ। |
crossOrigin | ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਕੈਨਵਸ ਵਿੱਚ ਇੱਕ ਵੱਖਰੇ ਡੋਮੇਨ ਤੋਂ ਲੋਡ ਕੀਤੀਆਂ ਤਸਵੀਰਾਂ ਦੀ ਵਰਤੋਂ ਨੂੰ ਸਮਰੱਥ ਬਣਾ ਕੇ ਸੁਰੱਖਿਆ ਪਾਬੰਦੀਆਂ ਦਾ ਸਨਮਾਨ ਕਰਦੀ ਹੈ। MaskImg.crossOrigin = 'ਅਨਾਮ' ਗਾਰੰਟੀ ਦਿੰਦਾ ਹੈ ਕਿ ਮਾਸਕ ਚਿੱਤਰ ਤੱਕ ਪਹੁੰਚ CORS ਸਮੱਸਿਆਵਾਂ ਪੈਦਾ ਕੀਤੇ ਬਿਨਾਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। |
beginPath() | ਕੈਨਵਸ 'ਤੇ, ਇਸ ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਨਵਾਂ ਮਾਰਗ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ. ਦੂਜੀ ਵਿਧੀ ctx.beginPath() ਨੂੰ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਾਲ ਕਰਦੀ ਹੈ ਕਿ ਮਾਰਗ ਮਾਸਕ ਦੇ ਕੰਟੋਰ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ ਕਿਉਂਕਿ ਇਹ ਮਾਸਕ ਚਿੱਤਰ ਦੇ ਦੁਆਲੇ ਇੱਕ ਕਸਟਮ ਬਾਰਡਰ ਖਿੱਚਦਾ ਹੈ। |
moveTo() | ਇਸ ਵਿਧੀ ਨਾਲ, ਕੋਈ ਡਰਾਇੰਗ ਨਹੀਂ ਬਣਾਏ ਜਾਂਦੇ; ਇਸਦੀ ਬਜਾਏ, "ਕਲਮ" ਨੂੰ ਇੱਕ ਨਵੇਂ ਸ਼ੁਰੂਆਤੀ ਸਥਾਨ ਤੇ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ। ਬਾਰਡਰ ਦੇ ਸ਼ੁਰੂਆਤੀ ਬਿੰਦੂ ਨੂੰ ctx.moveTo(0, 0) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਉਦਾਹਰਨ ਵਿੱਚ ਰੱਖਿਆ ਗਿਆ ਹੈ, ਜੋ ਕਿ ਮਾਸਕ ਦੀਆਂ ਸੀਮਾਵਾਂ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਬਾਰਡਰ ਨੂੰ ਸਹੀ ਤਰ੍ਹਾਂ ਖਿੱਚਣ ਲਈ ਜ਼ਰੂਰੀ ਹੈ। |
lineTo() | ਦਿੱਤੇ ਗਏ ਨਿਰਦੇਸ਼ਾਂਕ ਨੂੰ ਸ਼ੁਰੂਆਤੀ ਬਿੰਦੂ ਵਜੋਂ ਵਰਤ ਕੇ, ਇਹ ਤਕਨੀਕ ਇੱਕ ਸਿੱਧੀ ਰੇਖਾ ਖਿੱਚਦੀ ਹੈ। ਮਾਸਕ ਕੀਤੇ ਚਿੱਤਰ ਦੀ ਸਰਹੱਦ ਨੂੰ ctx.lineTo(maskImg.width, 0) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੱਲ ਵਿੱਚ ਖਿੱਚੀਆਂ ਗਈਆਂ ਲਾਈਨਾਂ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। |
stroke() | ਮਨੋਨੀਤ ਮਾਰਗ ਦੇ ਨਾਲ, ਬਾਰਡਰ ਜਾਂ ਰੇਖਾਵਾਂ ਖਿੱਚਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, moveTo() ਅਤੇ lineTo() ਦੀ ਵਰਤੋਂ ਮਾਸਕ ਫਾਰਮ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਅਤੇ ਫਿਰ ctx.stroke() ਨੂੰ ਮਾਸਕ ਚਿੱਤਰ ਦੇ ਦੁਆਲੇ ਬਾਰਡਰ ਲਾਗੂ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। |
lineWidth | ਇਹ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ ਕਿ ਕੈਨਵਸ 'ਤੇ ਰੇਖਾਵਾਂ ਕਿੰਨੀਆਂ ਮੋਟੀਆਂ ਪੇਂਟ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ। ਸਕ੍ਰਿਪਟ ctx.lineWidth = 5 ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਮਾਸਕ ਦੇ ਆਕਾਰ ਦੇ ਦੁਆਲੇ 5-ਪਿਕਸਲ ਮੋਟੀ ਬਾਰਡਰ ਸਥਾਪਤ ਕਰਦੀ ਹੈ। |
strokeStyle | ਬਾਰਡਰ ਦੇ ਰੰਗ ਜਾਂ ਸ਼ੈਲੀ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਵਿੱਚ ਬਾਰਡਰ ਰੰਗ ਨੂੰ ctx.strokeStyle ='red' ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਲਾਲ 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ। |
ਇੱਕ ਮਾਸਕ ਚਿੱਤਰ ਲਈ ਬਾਰਡਰ ਨੂੰ ਕਿਵੇਂ ਲਾਗੂ ਕਰਨਾ ਹੈ ਨੂੰ ਪਛਾਣਨਾ
ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਗਈਆਂ ਸਕ੍ਰਿਪਟਾਂ ਦਾ ਉਦੇਸ਼ ਇੱਕ ਚਿੱਤਰ ਲਈ ਇੱਕ ਮਾਸਕ ਵਜੋਂ ਦੂਜੀ ਤਸਵੀਰ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਹੈ, ਅਤੇ ਫਿਰ ਕੈਨਵਸ API ਮਖੌਟੇ ਵਾਲੀ ਸ਼ਕਲ ਦੇ ਦੁਆਲੇ ਇੱਕ ਕਸਟਮ ਬਾਰਡਰ ਜੋੜਨ ਲਈ। ਮਾਸਕ ਅਤੇ ਮੁੱਖ ਚਿੱਤਰ ਲਈ ਫੰਕਸ਼ਨ ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ ਦੋ ਨਵੇਂ ਚਿੱਤਰ ਆਬਜੈਕਟ ਬਣਾਏ ਜਾਂਦੇ ਹਨ। ਬਾਹਰੀ ਸਰੋਤਾਂ ਤੋਂ ਫੋਟੋਆਂ ਲੋਡ ਕਰਨ ਵੇਲੇ, CORS ਦੇ ਕਾਰਨ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਰੋਕਣ ਲਈ ਕ੍ਰਾਸ-ਓਰੀਜਨ ਸੈਟਿੰਗ ਜ਼ਰੂਰੀ ਹੈ। ਇੱਕ ਕੈਨਵਸ ਬਣਦਾ ਹੈ ਅਤੇ ਇਸਦੇ ਅਨੁਪਾਤ ਨੂੰ ਮਾਸਕ ਚਿੱਤਰ ਨਾਲ ਮੇਲ ਕਰਨ ਲਈ ਐਡਜਸਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਦੋਵੇਂ ਚਿੱਤਰ ਲੋਡ ਹੋ ਜਾਂਦੇ ਹਨ। ਇਹ ਚਿੱਤਰ ਡਰਾਇੰਗ ਦੌਰਾਨ ਮੁੜ-ਆਕਾਰ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ ਤੋਂ ਬਚਦਾ ਹੈ ਅਤੇ ਗਾਰੰਟੀ ਦਿੰਦਾ ਹੈ ਕਿ ਕੈਨਵਸ ਢੁਕਵੇਂ ਖੇਤਰ ਦੇ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ।
ਸਕ੍ਰਿਪਟ ਫਿਰ ਵਰਤਦੀ ਹੈ ਚਿੱਤਰਕਾਰੀ() ਮਾਸਕ ਚਿੱਤਰ ਨੂੰ ਕੈਨਵਸ ਉੱਤੇ ਖਿੱਚਣ ਲਈ ਫੰਕਸ਼ਨ। ਅਜਿਹਾ ਕਰਨ ਨਾਲ, ਮਾਸਕ ਨੂੰ ਕੈਨਵਸ 'ਤੇ ਲਾਗੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਮਾਸਕਿੰਗ ਪ੍ਰਕਿਰਿਆ ਲਈ ਬੁਨਿਆਦ ਪਰਤ ਵਜੋਂ ਕੰਮ ਕਰਦਾ ਹੈ। ਮਾਸਕ ਨੂੰ ਸਹੀ ਤਰ੍ਹਾਂ ਲਾਗੂ ਕਰਨ ਲਈ ਗਲੋਬਲ ਕੰਪੋਜ਼ਿਟ ਓਪਰੇਸ਼ਨ ਨੂੰ "ਸਰੋਤ-ਇਨ" 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਕੈਨਵਸ ਨੂੰ ਸਿਰਫ਼ ਪ੍ਰਾਇਮਰੀ ਤਸਵੀਰ ਦੇ ਉਹਨਾਂ ਖੇਤਰਾਂ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਣ ਲਈ ਕਿਹਾ ਗਿਆ ਹੈ ਜੋ ਮਾਸਕ ਚਿੱਤਰ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਹਨ। ਸੰਖੇਪ ਰੂਪ ਵਿੱਚ, ਮਾਸਕ ਉਸ ਆਕਾਰ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਮੁੱਖ ਚਿੱਤਰ ਨੂੰ ਕਲਿੱਪ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਮੁੱਖ ਤਸਵੀਰ ਇਸ ਕਲਿੱਪਿੰਗ ਖੇਤਰ ਦੇ ਅੰਦਰ ਖਿੱਚੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਸੰਯੁਕਤ ਕਾਰਵਾਈ ਨੂੰ "ਸਰੋਤ-ਓਵਰ" ਤੇ ਰੀਸੈਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਪਿਛਲੀ ਕਲਿੱਪ ਕੀਤੀ ਸਮੱਗਰੀ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕੀਤੇ ਬਿਨਾਂ ਬਾਰਡਰ ਪੇਂਟਿੰਗ ਵਰਗੀਆਂ ਵਾਧੂ ਕਾਰਵਾਈਆਂ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ।
ਨਕਾਬ ਵਾਲੀ ਸ਼ਕਲ 'ਤੇ ਬਾਰਡਰ ਲਗਾਉਣਾ ਸ਼ਾਮਲ ਹੈ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਸਟਰੋਕ() ਤਕਨੀਕ. ਕੈਨਵਸ 'ਤੇ ਨਿਰਧਾਰਤ ਮਾਰਗ ਜਾਂ ਫਾਰਮ ਇਸ ਕਮਾਂਡ ਦੁਆਰਾ ਦਰਸਾਏ ਗਏ ਹਨ। ਦੂਜੇ ਹੱਲ ਵਿੱਚ, moveTo() ਅਤੇ lineTo() ਨੂੰ ਹੱਥੀਂ ਕੈਨਵਸ ਮਾਰਗ ਬਣਾਉਣ ਅਤੇ ਮਾਸਕ ਦੀਆਂ ਬਾਰਡਰਾਂ ਨੂੰ ਟਰੇਸ ਕਰਨ ਲਈ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ। ਇਹਨਾਂ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਨਾਲ, ਤੁਸੀਂ ਬਾਰਡਰ ਦੀ ਸ਼ਕਲ ਨੂੰ ਹੱਥੀਂ ਨਿਰਧਾਰਿਤ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰ ਸਕਦੇ ਹੋ ਕਿ ਇਹ ਆਇਤਾਕਾਰ ਕੈਨਵਸ ਸੀਮਾ ਦੀ ਬਜਾਏ ਮਾਸਕ ਦੇ ਆਕਾਰ ਦਾ ਪਾਲਣ ਕਰਦਾ ਹੈ। ਸਰਹੱਦ ਦੀ ਦਿੱਖ 'ਤੇ ਤੁਹਾਡਾ ਪੂਰਾ ਨਿਯੰਤਰਣ ਹੈ ਕਿਉਂਕਿ ਲਾਈਨ ਚੌੜਾਈ ਸੰਪਤੀ ਬਾਰਡਰ ਦੀ ਮੋਟਾਈ ਅਤੇ ਸਟ੍ਰੋਕ ਸ਼ੈਲੀ ਜਾਇਦਾਦ ਆਪਣਾ ਰੰਗ ਨਿਰਧਾਰਤ ਕਰਦੀ ਹੈ।
ਅੰਤ ਵਿੱਚ, toDataURL() ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕੈਨਵਸ ਨੂੰ ਬੇਸ 64 ਸਤਰ ਵਿੱਚ ਬਦਲਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਜਿਹਾ ਕਰਨ ਨਾਲ, ਮੁਕੰਮਲ ਚਿੱਤਰ - ਮਾਸਕ ਅਤੇ ਬਾਰਡਰ ਸ਼ਾਮਲ - ਇੱਕ ਫਾਰਮੈਟ ਵਿੱਚ ਬਦਲ ਜਾਂਦਾ ਹੈ ਜੋ ਪ੍ਰੋਗਰਾਮ ਦੇ ਦੂਜੇ ਖੇਤਰਾਂ ਵਿੱਚ ਆਸਾਨੀ ਨਾਲ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜਾਂ ਸਰਵਰ 'ਤੇ ਅੱਪਲੋਡ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਸਮੇਂ ਦੀਆਂ ਗਲਤੀਆਂ ਤੋਂ ਬਚਣ ਲਈ, ਵਾਅਦਾ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਇਹ ਓਪਰੇਸ਼ਨ ਕੇਵਲ ਉਦੋਂ ਹੀ ਖਤਮ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਦੋਵੇਂ ਤਸਵੀਰਾਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਲੋਡ ਹੋ ਜਾਂਦੀਆਂ ਹਨ। ਇਹ ਸਕ੍ਰਿਪਟਾਂ ਦਿਖਾਉਂਦੀਆਂ ਹਨ ਕਿ ਕਿਵੇਂ ਆਧੁਨਿਕ ਚਿੱਤਰ ਸੋਧ ਤਕਨੀਕਾਂ, ਜਿਸ ਵਿੱਚ ਮਾਸਕ ਦੇ ਰੂਪਾਂ ਨਾਲ ਬਿਲਕੁਲ ਮੇਲ ਖਾਂਦਾ ਹੈ, ਇੱਕ ਗਤੀਸ਼ੀਲ ਬਾਰਡਰ ਨੂੰ ਮਾਸਕ ਕਰਨਾ ਅਤੇ ਲਾਗੂ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ, ਨੂੰ JavaScript ਦੇ ਕੈਨਵਸ ਤੱਤ ਨਾਲ ਪੂਰਾ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਢੰਗ 1: ਇੱਕ ਮਾਸਕ ਚਿੱਤਰ ਵਿੱਚ ਇੱਕ ਕਸਟਮ ਬਾਰਡਰ ਜੋੜਨ ਲਈ ਕੈਨਵਸ ਅਤੇ ਸਟ੍ਰੋਕ ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕਰਨਾ
ਮਾਸਕ ਕੀਤੇ ਚਿੱਤਰ ਦੇ ਦੁਆਲੇ ਇੱਕ ਬਾਰਡਰ ਬਣਾਉਣ ਲਈ, ਇਹ ਪਹੁੰਚ JavaScript ਅਤੇ Canvas API ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ। ਸਟ੍ਰੋਕ() ਦੀ ਵਰਤੋਂ ਮਾਸਕ ਸ਼ਕਲ ਦੀ ਰੂਪਰੇਖਾ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
function applyFiltersAndConvertToBase64(imageUrl, materialImage) {
return new Promise((resolve, reject) => {
const maskImg = new Image();
const mainImg = new Image();
maskImg.crossOrigin = "anonymous";
mainImg.crossOrigin = "anonymous";
let imagesLoaded = 0;
const onLoad = () => {
imagesLoaded++;
if (imagesLoaded === 2) {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
canvas.width = maskImg.width;
canvas.height = maskImg.height;
ctx.drawImage(maskImg, 0, 0);
ctx.globalCompositeOperation = 'source-in';
ctx.drawImage(mainImg, 0, 0, maskImg.width, maskImg.height);
ctx.globalCompositeOperation = 'source-over';
ctx.lineWidth = 5; // Border thickness
ctx.strokeStyle = 'red'; // Border color
ctx.stroke(); // Draw border around mask
const base64Image = canvas.toDataURL('image/png');
resolve(base64Image);
}
};
maskImg.onload = onLoad;
mainImg.onload = onLoad;
maskImg.onerror = reject;
mainImg.onerror = reject;
maskImg.src = imageUrl;
mainImg.src = materialImage;
});
}
ਵਿਕਲਪ 2: ਕੈਨਵਸ ਮਾਰਗ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਮਾਸਕ ਆਕਾਰ ਦੇ ਦੁਆਲੇ ਇੱਕ ਕਸਟਮ ਬਾਰਡਰ ਬਣਾਓ
ਇਹ ਵਿਧੀ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੇ ਨਾਲ ਕੈਨਵਸ API ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਚਿੱਤਰ ਮਾਸਕ ਮਾਰਗ ਦੀ ਪਾਲਣਾ ਕਰਕੇ ਬਾਰਡਰ ਮਾਸਕ ਸ਼ਕਲ ਨੂੰ ਨੇੜਿਓਂ ਪਾਲਣਾ ਕਰਦੀ ਹੈ।
function applyFiltersAndConvertToBase64(imageUrl, materialImage) {
return new Promise((resolve, reject) => {
const maskImg = new Image();
const mainImg = new Image();
maskImg.crossOrigin = "anonymous";
mainImg.crossOrigin = "anonymous";
let imagesLoaded = 0;
const onLoad = () => {
imagesLoaded++;
if (imagesLoaded === 2) {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
canvas.width = maskImg.width;
canvas.height = maskImg.height;
ctx.drawImage(maskImg, 0, 0);
ctx.globalCompositeOperation = 'source-in';
ctx.drawImage(mainImg, 0, 0, maskImg.width, maskImg.height);
ctx.globalCompositeOperation = 'source-over';
// Create path for the mask shape
ctx.beginPath();
ctx.moveTo(0, 0);
ctx.lineTo(maskImg.width, 0);
ctx.lineTo(maskImg.width, maskImg.height);
ctx.lineTo(0, maskImg.height);
ctx.closePath();
ctx.lineWidth = 5; // Border thickness
ctx.strokeStyle = 'blue'; // Border color
ctx.stroke(); // Apply the border along the path
const base64Image = canvas.toDataURL('image/png');
resolve(base64Image);
}
};
maskImg.onload = onLoad;
mainImg.onload = onLoad;
maskImg.onerror = reject;
mainImg.onerror = reject;
maskImg.src = imageUrl;
mainImg.src = materialImage;
});
}
JavaScript ਵਿੱਚ ਕਸਟਮ ਬਾਰਡਰਾਂ ਨਾਲ ਮਾਸਕਡ ਚਿੱਤਰਾਂ ਨੂੰ ਵਧਾਉਣਾ
ਤੁਹਾਡੀ JavaScript ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨੂੰ ਚਿੱਤਰਾਂ ਨੂੰ ਮਾਸਕ ਕਰਨ ਅਤੇ ਕਸਟਮ ਬਾਰਡਰ ਸੈੱਟ ਕਰਨ ਦੀ ਯੋਗਤਾ ਦੁਆਰਾ ਬਹੁਤ ਵਧਾਇਆ ਜਾ ਸਕਦਾ ਹੈ. ਕੈਨਵਸ API. ਮਾਸਕ ਦੀ ਮਦਦ ਨਾਲ, ਤੁਸੀਂ ਇਹ ਫੈਸਲਾ ਕਰ ਸਕਦੇ ਹੋ ਕਿ ਕਿਸੇ ਹੋਰ ਚਿੱਤਰ, ਜਿਸਨੂੰ ਮਾਸਕ ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਦੇ ਆਧਾਰ 'ਤੇ ਚਿੱਤਰ ਦੇ ਕਿਹੜੇ ਖੇਤਰ ਦਿਖਾਈ ਦੇ ਰਹੇ ਹਨ। ਮਾਸਕਡ ਜ਼ੋਨ ਦੇ ਦੁਆਲੇ ਇੱਕ ਬਾਰਡਰ ਜੋੜਨਾ ਇੱਕ ਅਜਿਹਾ ਮੁੱਦਾ ਹੈ ਜਿਸਦਾ ਬਹੁਤ ਸਾਰੇ ਡਿਵੈਲਪਰ ਸਾਹਮਣਾ ਕਰਦੇ ਹਨ, ਖਾਸ ਕਰਕੇ ਜਦੋਂ ਮਾਸਕ ਇੱਕ ਸਿੱਧਾ ਆਇਤਾਕਾਰ ਆਕਾਰ ਨਹੀਂ ਹੁੰਦਾ ਹੈ। ਬਾਰਡਰਾਂ ਵਾਲੇ ਪ੍ਰੋਜੈਕਟ ਜੋ ਮਾਸਕ ਦੀ ਰੂਪਰੇਖਾ ਨਾਲ ਬਿਲਕੁਲ ਮੇਲ ਖਾਂਦੇ ਹਨ, ਵਧੇਰੇ ਪਾਲਿਸ਼ ਅਤੇ ਮਾਹਰ ਦਿਖਾਈ ਦੇਣਗੇ।
ਇਸ ਸਮੱਸਿਆ ਦਾ ਇੱਕ ਉਪਯੋਗੀ ਹੱਲ ਕੈਨਵਸ API ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਹੈ ਪਾਥ2ਡੀ ਵਸਤੂ। ਤੁਸੀਂ ਗੁੰਝਲਦਾਰ ਰੂਟਾਂ ਨੂੰ ਡਿਜ਼ਾਈਨ ਕਰਨ ਲਈ Path2D ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ ਜੋ ਤੁਹਾਡੇ ਮਾਸਕ ਦੇ ਰੂਪਾਂ ਨੂੰ ਫਿੱਟ ਕਰਦੇ ਹਨ ਅਤੇ ਫਿਰ ਉਹਨਾਂ ਨੂੰ ਬਾਰਡਰ ਨਾਲ ਘੇਰਦੇ ਹਨ। ਇਹ ਵਿਧੀ ਤੁਹਾਨੂੰ ਬਾਰਡਰ ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ ਜੋ ਤੁਹਾਡੇ ਕਸਟਮ ਮਾਸਕ ਦੇ ਕੋਨਿਆਂ ਨਾਲ ਬਿਲਕੁਲ ਮੇਲ ਖਾਂਦੀਆਂ ਹਨ, ਪਰੰਪਰਾਗਤ ਆਇਤਕਾਰ ਤੋਂ ਪਰੇ। ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ moveTo() ਅਤੇ lineTo() ਇਕੱਠੇ ਮਾਸਕ ਦੀ ਰੂਪਰੇਖਾ ਨੂੰ ਟਰੇਸ ਕਰਨਾ ਸੌਖਾ ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ ਇੱਕ ਬਾਰਡਰ ਦੀ ਗਾਰੰਟੀ ਦਿੰਦਾ ਹੈ ਜੋ ਬਿਲਕੁਲ ਇਕਸਾਰ ਹੈ।
ਕਾਰਜਕੁਸ਼ਲਤਾ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣ ਲਈ ਇੱਕ ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਕਾਰਕ ਹੈ, ਖਾਸ ਕਰਕੇ ਜਦੋਂ ਵੱਡੇ ਚਿੱਤਰਾਂ ਨਾਲ ਕੰਮ ਕਰਨਾ ਜਾਂ ਅਸਲ-ਸਮੇਂ ਵਿੱਚ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਬਾਰਡਰ ਲਾਗੂ ਕਰਨਾ। ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਗਤੀ ਨੂੰ ਮਾਸਕਡ ਤਸਵੀਰ ਨੂੰ ਕੈਸ਼ ਕਰਨ, ਡਰਾਇੰਗ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਘਟਾਉਣ ਅਤੇ ਕੈਨਵਸ ਰੈਂਡਰਿੰਗ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਸੁਚਾਰੂ ਬਣਾਉਣ ਵਰਗੀਆਂ ਰਣਨੀਤੀਆਂ ਨੂੰ ਲਾਗੂ ਕਰਕੇ ਸੁਧਾਰਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਇੱਥੋਂ ਤੱਕ ਕਿ ਗੁੰਝਲਦਾਰ ਜਾਂ ਉੱਚ-ਪ੍ਰਦਰਸ਼ਨ ਸੈਟਿੰਗਾਂ ਵਿੱਚ, ਤੁਸੀਂ ਗਾਰੰਟੀ ਦੇ ਸਕਦੇ ਹੋ ਕਿ ਮਾਸਕਿੰਗ ਅਤੇ ਬਾਰਡਰ-ਡਰਾਇੰਗ ਪ੍ਰਕਿਰਿਆਵਾਂ ਵਿਅਰਥ ਕਾਰਵਾਈਆਂ ਨੂੰ ਘਟਾ ਕੇ ਸੁਚਾਰੂ ਢੰਗ ਨਾਲ ਚਲਦੀਆਂ ਹਨ।
ਕੈਨਵਸ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਮਾਸਕਿੰਗ ਅਤੇ ਬਾਰਡਰਿੰਗ ਚਿੱਤਰਾਂ ਬਾਰੇ ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ
- JavaScript ਵਿੱਚ, ਮੈਂ ਇੱਕ ਹੋਰ ਚਿੱਤਰ ਨੂੰ ਮਾਸਕ ਕਰਨ ਲਈ ਕਿਵੇਂ ਵਰਤ ਸਕਦਾ ਹਾਂ?
- ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ 2 ਲਈ ਸੈੱਟ ਕਰੋ 'source-in', ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਚਿੱਤਰ ਨੂੰ ਮਾਸਕ ਕਰਨ ਲਈ ਕੈਨਵਸ 'ਤੇ ਮਾਸਕ ਖਿੱਚੋ ਕੈਨਵਸ API. ਮਾਸਕ ਨਾਲ ਮੇਲ ਕਰਨ ਲਈ, ਇਹ ਪ੍ਰਾਇਮਰੀ ਚਿੱਤਰ ਨੂੰ ਕੱਟ ਦੇਵੇਗਾ।
- ਮੈਂ ਇੱਕ ਨਕਾਬਪੋਸ਼ ਚਿੱਤਰ ਲਈ ਬਾਰਡਰ ਕਿਵੇਂ ਬਣਾ ਸਕਦਾ ਹਾਂ ਜੋ ਇਸਦੇ ਆਕਾਰ ਦੇ ਅਨੁਕੂਲ ਹੈ?
- ਨਾਲ ਮਾਸਕ ਦੇ ਰੂਟ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨ ਤੋਂ ਬਾਅਦ moveTo() ਅਤੇ lineTo(), ਦੀ ਵਰਤੋਂ ਕਰੋ stroke() ਤਕਨੀਕ. ਇਹ ਤੁਹਾਨੂੰ ਮਾਸਕ ਦੀ ਸ਼ਕਲ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਾਰਡਰ ਨਾਲ ਘੇਰਨ ਦੇਵੇਗਾ।
- ਦਾ ਮਕਸਦ ਕੀ ਹੈ toDataURL() ਕੈਨਵਸ ਹੇਰਾਫੇਰੀ ਵਿੱਚ?
- ਕੈਨਵਸ ਦੀ ਸਮਗਰੀ ਨੂੰ ਦੁਆਰਾ ਇੱਕ ਬੇਸ 64-ਏਨਕੋਡ ਚਿੱਤਰ ਵਿੱਚ ਬਦਲਿਆ ਜਾਂਦਾ ਹੈ toDataURL() ਫੰਕਸ਼ਨ, PNG ਚਿੱਤਰ ਦੇ ਤੌਰ 'ਤੇ ਵਰਤਣਾ ਜਾਂ ਵੰਡਣਾ ਸੌਖਾ ਬਣਾਉਂਦਾ ਹੈ।
- ਮੈਂ ਪ੍ਰਦਰਸ਼ਨ ਲਈ ਕੈਨਵਸ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਕਿਵੇਂ ਅਨੁਕੂਲ ਬਣਾ ਸਕਦਾ ਹਾਂ?
- ਡਰਾਇੰਗ ਓਪਰੇਸ਼ਨਾਂ ਦੀ ਮਾਤਰਾ ਨੂੰ ਘਟਾਓ ਅਤੇ ਕੈਨਵਸ ਦੀ ਗਤੀ ਨੂੰ ਵੱਧ ਤੋਂ ਵੱਧ ਕਰਨ ਲਈ ਆਮ ਤੌਰ 'ਤੇ ਵਰਤੇ ਜਾਂਦੇ ਤੱਤਾਂ ਨੂੰ ਸਟੋਰ ਕਰਨ ਬਾਰੇ ਸੋਚੋ। ਇਹ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਸੁਚਾਰੂ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਦਾ ਰਹਿੰਦਾ ਹੈ ਅਤੇ ਰੀਡਰਾਅ ਦੀ ਗਿਣਤੀ ਨੂੰ ਘਟਾਉਂਦਾ ਹੈ।
- ਕੀ ਮੈਂ ਇੱਕ ਕੈਨਵਸ ਵਿੱਚ ਅੰਤਰ-ਮੂਲ ਚਿੱਤਰ ਲੋਡ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਹਾਂ, ਪਰ CORS ਮੁਸ਼ਕਲਾਂ ਪੈਦਾ ਕੀਤੇ ਬਿਨਾਂ ਚਿੱਤਰ ਨੂੰ ਉਪਲਬਧ ਕਰਾਉਣ ਲਈ, ਤੁਹਾਨੂੰ ਸੈੱਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ crossOrigin ਨੂੰ ਜਾਇਦਾਦ 'anonymous'.
ਮਾਸਕਿੰਗ ਅਤੇ ਬਾਰਡਰ 'ਤੇ ਅੰਤਿਮ ਵਿਚਾਰ
JavaScript ਐਪਸ ਵਿੱਚ, ਚਿੱਤਰਾਂ ਨੂੰ ਮਾਸਕ ਕਰਨਾ ਅਤੇ ਕੈਨਵਸ ਵਿੱਚ ਕਸਟਮ ਬਾਰਡਰਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਪਾਲਿਸ਼ਡ ਵਿਜ਼ੂਅਲ ਐਲੀਮੈਂਟਸ ਬਣਾਉਣ ਦਾ ਇੱਕ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਰੀਕਾ ਹੈ। ਡਿਵੈਲਪਰਾਂ ਕੋਲ ਚਿੱਤਰਾਂ ਦੀ ਪੇਸ਼ਕਾਰੀ ਅਤੇ ਸਟਾਈਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੇਰਾਫੇਰੀ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਹੈ ਕੈਨਵਸ API ਅਤੇ ਵਧੀਆ ਡਰਾਇੰਗ ਕਮਾਂਡਾਂ ਜਿਵੇਂ ਕਿ ਸਟਰੋਕ() ਅਤੇ ਮਾਰਗ ਪਰਿਭਾਸ਼ਾਵਾਂ।
ਬਾਰਡਰ ਅਤੇ ਮਾਸਕਿੰਗ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਧਿਆਨ ਨਾਲ ਅਨੁਕੂਲ ਬਣਾ ਕੇ ਨਿਰਵਿਘਨ ਪ੍ਰਦਰਸ਼ਨ ਯਕੀਨੀ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ, ਖਾਸ ਕਰਕੇ ਵੱਡੀਆਂ ਫੋਟੋਆਂ ਲਈ। ਇਹ ਟਿਊਟੋਰਿਅਲ ਗੈਰ-ਆਇਤਾਕਾਰ ਚਿੱਤਰਾਂ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਬਾਰਡਰਾਂ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਪੇਂਟ ਕਰਨ ਲਈ ਇੱਕ ਉਪਯੋਗੀ ਤਰੀਕਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਔਨਲਾਈਨ ਐਪਸ ਵਿਕਸਿਤ ਕਰਨ ਵੇਲੇ ਉਪਯੋਗੀ ਹੁੰਦਾ ਹੈ ਜੋ ਸੁਹਜ ਪੱਖੋਂ ਪ੍ਰਸੰਨ ਅਤੇ ਜਵਾਬਦੇਹ ਹਨ।
ਕੈਨਵਸ ਵਿੱਚ ਮਾਸਕਿੰਗ ਅਤੇ ਬਾਰਡਰ ਤਕਨੀਕਾਂ ਲਈ ਹਵਾਲੇ
- ਵਰਤਣ ਬਾਰੇ ਵਿਸਤ੍ਰਿਤ ਗਾਈਡ ਕੈਨਵਸ API ਚਿੱਤਰਾਂ ਅਤੇ ਮਾਸਕਾਂ ਵਿੱਚ ਹੇਰਾਫੇਰੀ ਕਰਨ ਲਈ, ਜਿਵੇਂ ਕਿ ਡਰਾਇੰਗ ਓਪਰੇਸ਼ਨਾਂ ਸਮੇਤ 4 ਅਤੇ 2: MDN ਵੈੱਬ ਡੌਕਸ .
- JavaScript ਵਿੱਚ ਚਿੱਤਰ ਮਾਸਕਿੰਗ ਅਤੇ ਕਰਾਸ-ਓਰੀਜਨ ਸਰੋਤਾਂ ਨੂੰ ਸੰਭਾਲਣ ਦੇ ਤਰੀਕੇ ਦੀ ਵਿਆਪਕ ਵਿਆਖਿਆ: HTML5 ਕੈਨਵਸ ਟਿਊਟੋਰਿਅਲ .
- ਚਿੱਤਰ ਰੈਂਡਰਿੰਗ ਅਤੇ ਡਰਾਇੰਗ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣ 'ਤੇ ਕੇਂਦ੍ਰਤ ਕਰਦੇ ਹੋਏ, ਕੈਨਵਸ-ਅਧਾਰਿਤ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਪ੍ਰਦਰਸ਼ਨ ਸੁਝਾਅ: ਸਮੈਸ਼ਿੰਗ ਮੈਗਜ਼ੀਨ .