![]() |
1
34
您可以将ImageData绘制到新画布,缩放原始画布,然后将新画布绘制到原始画布。 类似这样的事情应该会奏效:
这是一个功能正常的演示 http://jsfiddle.net/Hm2xq/2/ . |
![]() |
2
16
我需要在不使用putImageData()所导致的插值的情况下完成这项工作,所以我通过将图像数据缩放为一个新的、调整了大小的ImageData对象来完成这项工作。我想不出还有什么时候我认为使用5个嵌套for循环是个好主意:
我希望至少还有一个程序员可以在他们的编辑器中复制并粘贴这个,同时低声说:“我在那里,但为了上帝的恩典。” |
![]() |
3
15
我知道这是一个古老的主题,但由于人们可能会觉得它很有用,我将我的优化添加到rodarmar代码中:
这段代码使用较少的循环,运行速度大约是30倍。例如,在100*100区域的100倍变焦上,该代码需要250毫秒,而其他代码需要8秒以上。 |
![]() |
4
13
可以使用DrawImage方法缩放画布。
这将使图像的大小增加一倍,并将其西北部分呈现到画布上。通过DrawImage方法的第三个和第四个参数实现缩放,该参数指定图像的最终宽度和高度。 在MSN中查看文档 https://developer.mozilla.org/en-US/docs/DOM/CanvasRenderingContext2D#drawImage%28%29 |
![]() |
5
2
@卡斯特罗亨格的回答是可行的,但正如穆罕默德·乌默尔指出的那样,之后它会把原来画布上的鼠标坐标弄乱。如果要保持执行其他缩放(用于裁剪等)的能力,则需要使用第二个画布(用于缩放),然后从第二个画布获取图像数据并将其放入原始画布。像这样:
|
|
Andrew · 画布已被跨原点数据本地图像污染 8 年前 |