Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 画布HTML中“像素坐标”和“坐标”之间的差异_Javascript_Html_Canvas_Video - Fatal编程技术网

Javascript 画布HTML中“像素坐标”和“坐标”之间的差异

Javascript 画布HTML中“像素坐标”和“坐标”之间的差异,javascript,html,canvas,video,Javascript,Html,Canvas,Video,我正在使用JavaScript进行视频处理,我做得很好,但我使用了一个名为canvasCtx.rect的方法,它接收这些参数。 然后我从我用getImageData方法绘制的矩形中获取数据,但它接收以下参数: 它们看起来相似,几乎相同,但在X和Y坐标中,.rect接收坐标,.getImageData也接收X和Y坐标,但现在以像素为单位,我不知道这是否是我的感知,但我正在将数据绘制在图形上,我觉得它们有点过时,我想知道他们是否真的有不同的价值观​​或者它真的是一样的。 谢谢。从技术上讲,只有ge

我正在使用JavaScript进行视频处理,我做得很好,但我使用了一个名为canvasCtx.rect的方法,它接收这些参数。

然后我从我用getImageData方法绘制的矩形中获取数据,但它接收以下参数:

它们看起来相似,几乎相同,但在X和Y坐标中,.rect接收坐标,.getImageData也接收X和Y坐标,但现在以像素为单位,我不知道这是否是我的感知,但我正在将数据绘制在图形上,我觉得它们有点过时,我想知道他们是否真的有不同的价值观​​或者它真的是一样的。 谢谢。

从技术上讲,只有getImageData和putImageData的参数是以像素为单位的,所有其他方法都是相对于应用于上下文的当前变换矩阵的

例如,如果你将你的上下文缩放2,那么在10,10的位置上画图实际上是在20px,20px的位置上画图

const ctx=document.getElementById'canvas'.getContext'2d'; //首先绘制初始矩阵坐标1,1=>1px,1px ctx.beginPath; ctx.rect10,10,50,50; ctx.fillStyle='绿色'; ctx.fill; //现在按2个坐标1,1=>2px,2px绘制比例 ctx.scale2,2; ctx.beginPath; ctx.rect10,10,50,50; ctx.fillStyle='红色'; ctx.fill;
别担心,在这两种情况下,它都是指像素。很可能他们只是忘了添加单元。好的,我希望,谢谢:@amberty请将此评论作为答案发布,并接受它以帮助其他人找到它。p、 s.:Jesús您可以回答自己的问题。它在第一幅图像的宽度/高度描述上写入像素,但在x/y上没有写入,而第二幅图像在x/y参数上提到像素,但在宽度/高度上没有写入。对我来说有点恐怖。。我认为这个问题/答案并不具有代表性。