HTML5、JS的canvas绘制图片的问题。。

我用ctx.drawImage(image,X,Y,W,H,X,Y,W,H),把一张图片的不同部分绘制在不同的canvas上,但是我从图片上抠一块宽W高H的部分,绘制在宽... 我用ctx.drawImage(image,X,Y,W,H,X,Y,W,H),把一张图片的不同部分绘制在不同的canvas上,但是我从图片上抠一块宽W高H的部分,绘制在宽W高H的canvas上,宽度和高度硬是不对劲,有时要把宽度*2,有时高度要/2。
例如:ctx.drawImage(image,450,0,150,160,0,0,150,160); 图片宽高不对,会有拉伸(高度正常,宽度只有一半),这样写:ctx.drawImage(image,450,0,150,160,0,0,300,160);才正常显示,
又如:ctx.drawImage(image,300,480,300,320,0,0,300,320);图片不正常显示(宽度正常,高度为两倍),这样写:ctxnine.drawImage(image,300,480,300,320,0,0,300,160);就正常了。
而且不同canvas上绘制出来的图片清晰度也不一样,有的模糊,有的就清晰。
求解释这两个问题。
展开
 我来答
hutia
2014-11-08 · TA获得超过580个赞
知道小有建树答主
回答量:97
采纳率:100%
帮助的人:157万
展开全部
按照你的描述,估计你之前的代码有调用过 ctx.scale 或者 ctx.transform 函数,导致坐标轴被缩放了。

建议找到对应的缩放调用,合理使用 ctx.save 和 ctx.restore 函数,来避免上下文环境污染
追问
我没有进行任何坐标变换,问题已经找到了,我之前是在里面设置canvas的width和height,就会出现上面的问题,当我直接在canvas标签里面设置width,height的时候就一切正常。虽然知道了问题在哪,但是还是不知道为什么。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式