ホームページ  >  記事  >  ウェブフロントエンド  >  画像のスケーリング、反転、色のグラデーションを実装するための HTML5 Canvas コード例_html5 チュートリアル スキル

画像のスケーリング、反転、色のグラデーションを実装するための HTML5 Canvas コード例_html5 チュートリアル スキル

WBOY
WBOYオリジナル
2016-05-16 15:46:002600ブラウズ

反転、移動、パン、ズームイン、ズームアウト

XML/HTML コードコンテンツをクリップボードにコピー
  1. var canvas = document.getElementById('canvas');   
  2. if (canvas.getContext) {
  3. var context = canvas.getContext('2d');   
  4. // 放大与缩小
  5. context.beginPath();   
  6. context.ストロークスタイル = "#000000";   
  7. context.ストロークRect(10,10,150,100);   
  8. // 放大3倍
  9. context.scale(3,3);   
  10. context.beginPath();   
  11. context.ストロークスタイル = '#cccccc';   
  12. context.ストロークRect(10,10,150,100)
  13. // 缩小
  14. context.scale(0.5,0.5);   
  15. context.beginPath();   
  16. context.ストロークスタイル = '#cccccc';   
  17. context.ストロークRect(10,10,150,100)
  18. // 翻转
  19. var img = new Image();   
  20. img.src = 'images/1.jpg';   
  21. img.onload = 関数(){
  22. context.drawImage(img, 10,10);           
  23. context.scale(1, -1);   
  24. context.drawImage(img, 0, -500);   
  25. }  
  26. // 平移
  27. context.beginPath();   
  28. context.ストロークスタイル = '#000000';   
  29. context.ストロークRect(10,101,150,100);   
  30. // x移動 50 y 移動100
  31. context.translate(50,100);   
  32. context.beginPath();   
  33. context.ストロークスタイル = '#cccccc';   
  34. context.ストロークRect(10,10,150,100);   
  35. // 旋转
  36. context.beginPath();   
  37. context.ストロークスタイル = '#000000';   
  38. context.ストロークRect(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.ストロークスタイル = '#cccccc';   
  45. context.ストロークRect(200,50,100,50);   
  46. // 変換 四角阵
  47. context.beginPath();   
  48. context.ストロークスタイル = '#000000';   
  49. context.ストロークRect(10,10,150,100);   
  50. context.transform(3,0,0,3,0,0);   
  51. context.beginPath();   
  52. context.ストロークスタイル = '#cccccc';   
  53. context.ストロークRect(10,10,150,100);   
  54. }

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

XML/HTML コード复制コンテンツ到剪贴板
  1. var canvas = ドキュメント.getElementById('canvas'); >
  2. if (canvas.getContext) {
  3. var
  4. context = canvas.getContext('2d'); // 線形描画グラデーション
  5. var
  6. grd
  7. = context.createLinearGradient(0,0,200,100); // 位置は 0.1 ~ 1.0 の間の垂直方向である必要があり、グラデーション内の色の相対位置を示します。color は色を表します
  8. grd.addColorStop(0.1, "#00ff00");
  9. grd.addColorStop(0.8, "#ff0000");
  10. context.fillStyle
  11. =
  12. grd; context.fillRect(0,0, 200,100); // 放射状グラデーション
  13. var
  14. grd
  15. =
  16. context
  17. .createRadialGradient(100,100,10,100,100,50);
  18. grd.addColorStop(0.1, "#00ff00"); grd.addColorStop(0.8, '#ff0000');
  19. context.fillStyle
  20. =
  21. grd
  22. ;
  23. context.fillRect(0,0,200,200);
  24. // 画像合成効果 context.fillStyle
  25. =
  26. '#00ff00'
  27. ;
  28. context.fillRect(10,10,50,50);
  29. // 新規描画 //context.globalCompositeOperation =
  30. "ソースオーバー"
  31. ;
  32. // 新しいコンテンツのみを描画し、他のコンテンツはすべて削除します
  33. context.globalCompositeOperation = 'コピー'; // グラフィックスが重なっている場合、色の値が減算されて
  34. が決定されます
  35. context.globalCompositeOperation
  36. = '暗い'; // キャンバス上にすでにあるコンテンツは、他のグラフィックスと重なっている場所にのみ保持されます
  37. context.globalCompositeOperation
  38. =
  39. 'destination-atop'; // 参照 http://www.w3school.com.cn/htmldom/prop_canvasrenderingcontext2d_globalcompositeoperation.asp context.beginPath();
  40. context.fillStyle
  41. =
  42. '#ff0000';
  43. context.arc(50,50,30,0, 2 * Math.PI);   
  44. context.fill();   
  45. // 颜色翻转
  46. var img = new Image();   
  47. img.src = 'images/1.jpg';   
  48. img.onload = 関数(){
  49. context.drawImage(img, 0,0, 1, 1);   
  50. var imgData = context.getImageData(0,0, 1,1);   
  51. var ピクセル = imgData.data;   
  52. console.log(ピクセル);   
  53. for(var i = 0, n = ピクセル.length; i < n; i =4) {
  54. ピクセル[i] = 255 - ピクセル[i];   
  55. ピクセル[i 1] = 255 - ピクセル[i 1];   
  56. ピクセル[i 2] = 255 - ピクセル[i 2];   
  57. }
  58. context.putImageData(imgData, 250, 0);   
  59. }
  60. }
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。