HTML ਕੈਂਵਾਸ createImageData() ਮੈਥਡ
ਵਿਵਰਣ ਅਤੇ ਵਰਤੋਂ
createImageData()
ਨਵਾਂ ਖਾਲੀ ਇਮੇਜਡਾਟਾ ਆਬਜੈਕਟ ਬਣਾਉਣ ਦਾ ਤਰੀਕਾ। ਨਵੇਂ ਆਬਜੈਕਟ ਦੇ ਡਿਫਾਲਟ ਪਿਕਸਲ ਮੁੱਲ ਟ੍ਰਾਂਸਪੇਰੈਂਟ ਬਲੈਕ ਹੁੰਦਾ ਹੈ。
ਇਮੇਜਡਾਟਾ ਆਬਜੈਕਟ ਦੇ ਹਰੇਕ ਪਿਕਸਲ ਵਿੱਚ, ਚਾਰ ਪ੍ਰਕਾਰ ਦੀਆਂ ਸੂਚਨਾਵਾਂ ਹੁੰਦੀਆਂ ਹਨ, ਜਿਵੇਂ ਕਿ RGBA ਮੁੱਲ:
- R - ਲਾਲ (0-255)
- G - ਹਰੀ (0-255)
- B - ਨੀਲਾ (0-255)
- A - alpha 通道 (0-255; 0 ਸਾਫ਼ ਹੈ, 255 ਪੂਰੀ ਤਰ੍ਹਾਂ ਦੇਖਿਆ ਜਾਂਦਾ ਹੈ)
ਇਸ ਲਈ , ਟ੍ਰਾਂਸਪਰੈਂਟ ਬਲੈਕ (0,0,0,0) ਦੇ ਰੂਪ ਵਿੱਚ ਪੇਸ਼ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
color/alpha ਨੂੰ ਆਰਰੇ ਫਾਰਮੈਟ ਵਿੱਚ ਰੱਖਿਆ ਹੁੰਦਾ ਹੈ ਅਤੇ ਜਿਵੇਂ ਆਰਰੇ ਹਰ ਪਿਕਸਲ ਦੇ ਚਾਰ ਸੂਚਨਾਵਾਂ ਰੱਖਦੇ ਹਨ ਤਾਂ ਆਰਰੇ ਦਾ ਮੋਟਾਪਾ ਇਮੇਜਡਾਟਾ ਆਬਜੈਕਟ ਦੇ ਚਾਰ ਗੁਣਾ ਹੁੰਦਾ ਹੈ।(ਆਰਰੇ ਦਾ ਮੋਟਾਪਾ ਮਿਲਣ ਲਈ ਸਰਲ ਤਰੀਕਾ ਇਮੇਜਡਾਟਾ ਆਬਜੈਕਟ ਦਾ data.length ਵਰਤਣਾ ਹੈ)
color/alpha ਸੂਚਨਾ ਸ਼ਾਮਲ ਹੋਣ ਵਾਲੇ ਆਰਰੇ ਇਮੇਜਡਾਟਾ ਆਬਜੈਕਟ ਦੇ data ਪ੍ਰਤੀਯੋਗਿਤਾ ਵਿੱਚ
ਸੁਝਾਅ:ਹਰ ਕਿਸਮ ਦੇ ਰੰਗ/ਅਲਫਾ ਸੂਚਨਾ ਨੂੰ ਹੱਲੇ ਹੋਣ ਤੋਂ ਬਾਅਦ ਤੁਸੀਂ ਇਸ ਨੂੰ ਵਰਤ ਸਕਦੇ ਹੋ: putImageData() ਮੇਥਡ ਚਿੱਤਰ ਅੰਕੜਾ ਕੋਪੀ ਕਰਕੇ ਕੈਂਵਾਸ 'ਤੇ ਲਿਆਉਂਦਾ ਹੈ。
ਉਦਾਹਰਣ:
ਇਹ ਸਫ਼ਟਵੇਅਰ ਇਮੇਜਡਾਟਾ ਆਬਜੈਕਟ ਦੇ ਪਹਿਲੇ ਪਿਕਸਲ ਨੂੰ ਲਾਲ ਬਣਾ ਦਿੰਦਾ ਹੈ:
imgData=ctx.createImageData(100,100); imgData.data[0]=255; imgData.data[1]=0; imgData.data[2]=0; imgData.data[3]=255;
ਇਹ ਸਫ਼ਟਵੇਅਰ ਇਮੇਜਡਾਟਾ ਆਬਜੈਕਟ ਦੇ ਦੂਜੇ ਪਿਕਸਲ ਨੂੰ ਲਾਲ ਬਣਾ ਦਿੰਦਾ ਹੈ:
imgData=ctx.createImageData(100,100); imgData.data[4]=0; imgData.data[5]=255; imgData.data[6]=0; imgData.data[7]=255;
ਉਦਾਹਰਣ
100*100 ਪਿਕਸਲ ਦਾ ਇਮੇਜਡਾਟਾ ਆਬਜੈਕਟ ਬਣਾਓ ਜਿਸ ਵਿੱਚ ਹਰ ਪਿਕਸਲ ਲਾਲ ਹੋਵੇ ਅਤੇ ਇਸ ਨੂੰ ਕੈਂਵਾਸ 'ਤੇ ਰੱਖੋ:
ਜਾਵਾਸਕ੍ਰਿਪਟ:
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var imgData=ctx.createImageData(100,100); for (var i=0;i<imgData.data.length;i+=4) { imgData.data[i+0]=255; imgData.data[i+1]=0; imgData.data[i+2]=0; imgData.data[i+3]=255; } ctx.putImageData(imgData,10,10);
ਸਫ਼ਟਵੇਅਰ
ਕ੍ਰਿਏਟ ਐਕਸਟਰਾਇਡ ਮੇਥਡ ਦੋ ਵਰਜਨਾਂ ਹਨ:
1. ਨਿਰਧਾਰਿਤ ਅਕਾਰ (ਪਿਕਸਲ ਵਿੱਚ) ਨਾਲ ਨਵਾਂ ImageData ਆਬਜੈਕਟ ਬਣਾਓ:
var imgData=context.createImageData(width,height);
2. ਇੱਕ ਹੋਰ ImageData ਆਬਜੈਕਟ ਦੇ ਅਕਾਰ ਨਾਲ ਸਮਾਨ ਨਵਾਂ ImageData ਆਬਜੈਕਟ ਬਣਾਓ (ਇਮੇਜ਼ ਡਾਟਾ ਨੂੰ ਨਹੀਂ ਨਕਲ ਕੀਤਾ ਜਾਵੇਗਾ):
var imgData=context.createImageData(imageData);
ਪੈਰਾਮੀਟਰ ਮੁੱਲ
ਪੈਰਾਮੀਟਰ | ਵਰਣਨ |
---|---|
width | ImageData ਆਬਜੈਕਟ ਦੀ ਚੌੜਾਈ ਪਿਕਸਲ ਵਿੱਚ ਹੈ。 |
height | ImageData ਆਬਜੈਕਟ ਦੀ ਉਚਾਈ ਪਿਕਸਲ ਵਿੱਚ ਹੈ。 |
imageData | ਇੱਕ ਹੋਰ ImageData ਆਬਜੈਕਟ |
ਬਰਾਉਜ਼ਰ ਸਮਰਥਨ
ਸਾਰੇ ਸੰਖਿਆਵਾਂ ਨੇ ਇਸ ਗੁਣ ਦਾ ਪਹਿਲਾ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਮਰਥਨ ਕਰਨ ਵਾਲਾ ਬਰਾਉਜ਼ਰ ਦੀ ਸੰਸਕਰਣ ਦਿੱਤੀ ਹੈ。
ਚਰੋਮ | ਐਜ਼ | ਫਾਇਰਫਾਕਸ | ਸੈਫਾਰੀ | ਓਪਰਾ |
---|---|---|---|---|
ਚਰੋਮ | ਐਜ਼ | ਫਾਇਰਫਾਕਸ | ਸੈਫਾਰੀ | ਓਪਰਾ |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
ਟਿੱਪਣੀਆਂ:Internet Explorer 8 ਅਤੇ ਇਸ ਤੋਂ ਪਹਿਲਾਂ ਦੀਆਂ ਸੰਸਕਰਣਾਂ <canvas> ਐਲੀਮੈਂਟ ਨੂੰ ਸਮਰਥਨ ਨਹੀਂ ਦਿੰਦੇ ਹਨ。