현재 위치 - 인적 자원 플랫폼망 - 미니프로그램 자료 - 애플릿 CTX
애플릿 CTX
요즘은 그림의 색깔을 바꿔야 합니다.

결국 나는 뜻밖에도 거절했다, 왜냐하면 나는 달성하기 어렵다고 말했기 때문이다. 하지만 내 마음은 여전히 예민하다.

다음은 색상을 대체하는 방법입니다. 효과가 그런대로 괜찮다. 약간의 땅이 있다

주요 코드는 여전히 다른 사람을 복제하는 것이다. 여기에 기록으로 써 주세요.

1, 캔버스의 getImageData 에서 생성된 그림입니다.

이 주기에 근거하여 이런 결론을 내릴 수 있다

구도는 ARGB 형식입니다. 첫 번째는 투명하고, 다음은 rgba 입니다.

2. 얻은 화면 주기는 4 의 배수로 순환해야 한다. 그렇지 않으면 적어도 카드로 죽는다.

For(var j = 0;; J & ltpdata.lengthj+= 4) {if (pdata [j] = = = = 95) pdata [j] = colorrar [0]; If (pdata [j-1] = = =170) pdata [j-1] = colorarr If (pdata [j-2j] = = =129) pdata [j-2] = colorarr [2]; } 코드 복사

3. 색상이 바뀌는 순서는 반대여야 합니다.

그래서 0, 1, 2,3 의 순서.

대체된 RGB 색상은 3,2, 1 이어야 합니다.

배열 RGB: data [I], data [I- 1], data [2] 를 가져옵니다.

또는 위의 코드를 보세요.

4. 전체 코드 포맷

& lt! Doctype html & gt< html & gt< style & gt # BTN {width:100px; 높이: 50px 배경: 산호; 위치: 고정; 맨 위: 0; } & lt/style & gt;; & lthead & gt & ltscripttype = "text/JavaScript" > Var c, CTX, myImage 함수 displayimage () {myimage = newimage (); Myimage.src = "1719 ebbc 83be39f0.webp.jpg"; C = document.getelementbyid ("mycanvas"); If (c.getcontext) {CTX = c.getcontext ("2d"); Myimage.onload = function () {ctx.drawimage (myimage, 0, 0); }} }//Colorar 대체 색상//대체 전 색상 함수 getColordata (Colorar, Color2) {imaged = CTX. Getimagedata (0 0,0, myimage.width, myimage.height); Varpdata = imaged.data for (var j = 0; J & ltpdata.lengthj+= 4) {if (pdata [j] = = = color2 [0]) pdata [j] = colorarr [; If (pdata [j+1] = = = color2 [1]) pdata [j+1] = If (pdata [j+2] = = = color2 [2]) pdata [j+2] = colorarr [2]; } ctx.putImageData(imageD, 0, 0); } 함수 colorchange () {//RGB color getcolordata ([102,51,1 }</스크립트 > & lt/head & gt;; & lt bodyonload = "displayimage ()" > & LTP> 원본: