Я не уверен, что вы подразумеваете под "физическим перемещением", но вы можете использовать ctx.putImageData()
, чтобы применить пиксель в другом месте внутри холста.
var imageData = ctx.getImageData(200, 150, 1, 1);
var pixel = imageData.data;
// You can even get or set the color or alpha of the pixel. (values between 0-255)
var r = pixel[0];
var g = pixel[1];
var b = pixel[2];
var a = pixel[3];
ctx.putImageData(imageData, x, y); // Where x y are the new coordinates.
Кроме того, вы должны поместить все эти манипуляции imageData
в функцию onload
, потому что в вашем примере изображение по-прежнему не загружается при вызове ctx.getImageData()
, поэтому вы манипулируете пустыми пикселями.
Обратите внимание, что по соображениям безопасности вы не можете использовать getImageData()
для изображения, загруженного из другого домена. Поэтому я думаю, что ваш пример выдаст исключение типа Uncaught Error: SECURITY_ERR: DOM Exception 18
, потому что изображение загружено из Instagram.