html5 – 如何将画布的一部分捕获到位图

前端之家收集整理的这篇文章主要介绍了html5 – 如何将画布的一部分捕获到位图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想捕获一个画布的一小部分作为位图.那可能吗?这样我可以在该区域上绘制另一个位图后替换它.一旦我完成了位图,我想用原始作品替换我画的一小块画布.

谢谢!

解决方法

你可以使用 .getImageData().putImageData()来做到这一点

  1. var canvas,ctx,img,imgd,col;
  2. window.onload = function () {
  3. canvas = document.getElementById('canvas');
  4. ctx = canvas.getContext('2d');
  5. col = {
  6. 0: '#000',.25: '#0099f9',.55: '#03f',1: '#000'
  7. };
  8. img = document.getElementById('img');
  9. var w = h = canvas.width = canvas.height = 200;
  10.  
  11. var grad = ctx.createRadialGradient(w / 2,w / 2,h);
  12. for (var i in col) {
  13. grad.addColorStop(i,col[i]); //just a funny mess,please don't bother :)
  14. }
  15.  
  16. ctx.fillStyle = grad;
  17. ctx.fillRect(0,w,h);
  18. imgd = ctx.getImageData(50,50,20,20); //caching the image Data
  19.  
  20. }
  21.  
  22. function draw() {
  23. ctx.drawImage(img,20); //drawing Image on to canvas
  24. }
  25.  
  26. function redraw() {
  27. ctx.putImageData(imgd,20); //redraw the cached Image Data
  28. }

和一个简单的在线示例,只有你:)

Try it Here

猜你在找的HTML5相关文章