뒤집기, 이동, 이동, 확대, 축소 XML/HTML 코드클립보드에 콘텐츠 복사 var 캔버스 = 문서.getElementById('canvas'); if (canvas.getContext) { var 컨텍스트 = 캔버스.getContext('2d'); // 放大与缩小 context.beginPath(); context.StrokeStyle = "#000000"; context.StrokeRect(10,10,150,100); // 放大3倍 context.scale(3,3); context.beginPath(); context.StrokeStyle = '#cccccc'; context.strokRect(10,10,150,100) // 작게 context.scale(0.5,0.5); context.beginPath(); context.StrokeStyle = '#cccccc'; context.strokRect(10,10,150,100) // 翻转 var img = new 이미지(); img.src = 'images/1.jpg'; img.onload = 기능(){ context.drawImage(img, 10,10); context.scale(1, -1); context.drawImage(img, 0, -500); } // 平移 context.beginPath(); context.StrokeStyle = '#000000'; context.strokRect(10,101,150,100); // x移动 50 y 移动100 context.translate(50,100); context.beginPath(); context.StrokeStyle = '#cccccc'; context.StrokeRect(10,10,150,100); // 旋转 context.beginPath(); context.StrokeStyle = '#000000'; context.StrokeRect(200,50,100,50); // 默认旋转是根据0,0中心,使用translate可以按光自己的设置的中心旋转 context.translate(250,75); context.rotate(45 * Math.PI /180); context.translate(-250, -75); context.beginPath(); context.StrokeStyle = '#cccccc'; context.StrokeRect(200,50,100,50); // 변환 矩阵 context.beginPath(); context.StrokeStyle = '#000000'; context.StrokeRect(10,10,150,100); context.transform(3,0,0,3,0,0); context.beginPath(); context.StrokeStyle = '#cccccc'; context.StrokeRect(10,10,150,100); } 渐变、图image组合效果、颜color翻转 XML/HTML 코드复复内容到剪贴板 var 캔버스 = 문서.getElementById('canvas') if (canvas.getContext) { var context = canvas.getContext('2d') // 선형 그리기 그라데이션 var grd = context.createLinearGradient(0,0,200,100) // 위치는 0.1-1.0 사이의 수직이어야 하며, 이는 그라데이션에서 색상의 상대적 위치를 나타냅니다. 색상은 색상을 나타냅니다. grd.addColorStop(0.1, "#00ff00") grd.addColorStop(0.8, "#ff0000") context.fillStyle = grd context.fillRect(0,0, 200,100) // 방사형 그래디언트 var grd = context.createRadialGradient(100,100,10,100,100,50) grd.addColorStop(0.1, "#00ff00") grd.addColorStop(0.8, '#ff0000') context.fillStyle = grd context.fillRect(0,0,200,200) // 이미지 조합 효과 context.fillStyle = '#00ff00' context.fillRect(10,10,50,50) // 새 그림 //context.globalCompositeOperation = "소스 오버"; // 새 콘텐츠만 그리기, 나머지 콘텐츠는 모두 삭제 context.globalCompositeOperation = '복사' // 그래픽이 겹치는 부분에서는 색상값을 빼서 결정 context.globalCompositeOperation = '더 어둡게'; // 이미 캔버스에 있는 내용은 다른 그래픽과 겹치는 부분에만 유지됩니다. context.globalCompositeOperation = 'destination-atop'; // 참고 http://www.w3school.com.cn/htmldom/prop_canvasrenderingcontext2d_globalcompositeeration.asp context.beginPath() context.fillStyle = '#ff0000' context.arc(50,50,30,0, 2 * Math.PI); context.fill(); // 颜color翻转 var img = new 이미지(); img.src = 'images/1.jpg'; img.onload = 기능(){ context.drawImage(img, 0,0, 1, 1); var imgData = context.getImageData(0,0, 1,1); var 픽셀 = imgData.data; console.log(픽셀); for(var i = 0, n = 픽셀.length; i < n; i =4) { 픽셀[i] = 255 - 픽셀[i]; 픽셀[i 1] = 255 - 픽셀[i 1]; 픽셀[i 2] = 255 - 픽셀[i 2]; } context.putImageData(imgData, 250, 0); } }