HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例_html5教程技巧

WBOY
Freigeben: 2016-05-16 15:46:00
Original
2513 Leute haben es durchsucht

翻转、移动、平移、放大、缩小

XML/HTML Code复制内容到剪贴板
  1. varcanvas=document.getElementById('canvas');
  2. if (canvas.getContext) {
  3. varcontext=canvas.getContext('2d');
  4. // 放大与缩小
  5. context.beginPath();
  6. context.strokeStyle="#000000";
  7. context.strokeRect(10,10,150,100);
  8. // 放大3倍
  9. context.scale(3,3);
  10. context.beginPath();
  11. context.strokeStyle='#cccccc';
  12. context.strokeRect(10,10,150,100)
  13. // 缩小
  14. context.scale(0.5,0.5);
  15. context.beginPath();
  16. context.strokeStyle='#cccccc';
  17. context.strokeRect(10,10,150,100)
  18. // 翻转
  19. varimg=newImage();
  20. img.src='images/1.jpg';
  21. img.onload=function(){
  22. context.drawImage(img, 10,10);
  23. context.scale(1, -1);
  24. context.drawImage(img, 0, -500);
  25. }
  26. // 平移
  27. context.beginPath();
  28. context.strokeStyle='#000000';
  29. context.strokeRect(10,101,150,100);
  30. // x移动 50 y 移动100
  31. context.translate(50,100);
  32. context.beginPath();
  33. context.strokeStyle='#cccccc';
  34. context.strokeRect(10,10,150,100);
  35. // 旋转
  36. context.beginPath();
  37. context.strokeStyle='#000000';
  38. context.strokeRect(200,50,100,50);
  39. // 默认旋转是根据0,0中心,使用translate可以按照自己的设置的中心旋转
  40. context.translate(250,75);
  41. context.rotate(45 * Math.PI /180);
  42. context.translate(-250, -75);
  43. context.beginPath();
  44. context.strokeStyle='#cccccc';
  45. context.strokeRect(200,50,100,50);
  46. // transform 矩阵
  47. context.beginPath();
  48. context.strokeStyle='#000000';
  49. context.strokeRect(10,10,150,100);
  50. context.transform(3,0,0,3,0,0);
  51. context.beginPath();
  52. context.strokeStyle='#cccccc';
  53. context.strokeRect(10,10,150,100);
  54. }

渐变、图像组合效果、颜色翻转

XML/HTML Code 复制内容到剪贴板
  1. varcanvas=document.getElementById('canvas');
  2. if (canvas.getContext) {
  3. varcontext=canvas.getContext('2d');
  4. // 线性绘制渐变
  5. vargrd=context.createLinearGradient(0,0,200,100);
  6. // postion 必须是0.1-1.0之间的竖直,表示渐变中颜色的地点相对地位,color表示颜色
  7. grd.addColorStop(0.1, "#00ff00");
  8. grd.addColorStop(0.8, "#ff0000");
  9. context.fillStyle=grd;
  10. context.fillRect(0,0, 200,100);
  11. // 径向渐变
  12. vargrd=context.createRadialGradient(100,100,10,100,100,50);
  13. grd.addColorStop(0.1, "#00ff00");
  14. grd.addColorStop(0.8, '#ff0000');
  15. context.fillStyle=grd;
  16. context.fillRect(0,0,200,200);
  17. // 图像组合效果
  18. context.fillStyle='#00ff00';
  19. context.fillRect(10,10,50,50);
  20. // 新绘图
  21. //context.globalCompositeOperation="source-over";
  22. // 只绘制新内容,删除其他所有内容
  23. context.globalCompositeOperation='copy';
  24. // 图形重叠的地方,其颜色值相减后决定
  25. context.globalCompositeOperation='darker';
  26. // 画布上已经有的内容只会载和其他图形重叠的地方保留
  27. context.globalCompositeOperation='destination-atop';
  28. // 参考 http://www.w3school.com.cn/htmldom/prop_canvasrenderingcontext2d_globalcompositeoperation.asp
  29. context.beginPath();
  30. context.fillStyle='#ff0000';
  31. context.arc(50,50,30,0, 2 * Math.PI);
  32. context.fill();
  33. // 颜色翻转
  34. varimg=newImage();
  35. img.src='images/1.jpg';
  36. img.onload=function(){
  37. context.drawImage(img, 0,0, 1, 1);
  38. varimgData=context.getImageData(0,0, 1,1);
  39. varpixels=imgData.data;
  40. console.log(pixels);
  41. for(vari=0,n=pixels.length; in; i+=4) {
  42. pixels[i] = 255 - pixels[i];
  43. pixels[i+1] = 255 - pixels[i + 1];
  44. pixels[i+2] = 255 - pixels[i + 2];
  45. }
  46. context.putImageData(imgData, 250, 0);
  47. }
  48. }
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!