返回列表 发新帖

html5 更新图片颜色示例代码

258.5k 9
swmozowtfl 发表于 2015-7-10 22:26:26|湖北 | 查看全部 阅读模式
代码如下:
( Z0 t$ r' L, W4 P
<canvas id=c1 width=1220 height = 880 style=background: none repeat scroll 0% 0% transparent; ></canvas> % b. h4 o4 g9 i( s3 \% z8 Q
<script>
) t6 U7 h: h3 Dvar cid = c1;
( X! f5 f* A' v8 Ovar image = new image(); $ u( {! A! l2 ]) i& j. \2 p( G! j3 V
image.src = eye/item_eye_1.png; , ~0 Q; v' s$ I, O$ b0 x
image.onload = function () { 2 i6 @. k3 n) t: `% P0 ^2 D
recolorimage(cid,image, 0, 0, 0, 255, 0, 0);
% a  X. c: [: Z  F% p( q} ) O- `0 Q. G' x. y
function recolorimage(c,img, oldred, oldgreen, oldblue, newred, newgreen, newblue) { 7 h! M; A) L; J- x& S* q
var c = document.getelementbyid(c);
# \+ V! l- o: T- i: _. vvar ctx = c.getcontext(2d);
  |3 s6 t" K7 W& Z8 Y4 ~var w = img.width; 3 b2 V' E( y# C
var h = img.height;
: V& {! e: ?& A5 Z! R0 R& S' lc.width = w; 2 x" _' X2 v& U% F1 U) J
c.height = h;
& G) G" z" x6 A  y9 y5 Q// draw the image on the temporary canvas * j6 Q- U& `# j! O5 ?4 B0 L
ctx.drawimage(img, 0, 0, w, h);
% _0 s+ c8 I; F9 i& t1 d// pull the entire image into an array of pixel data
, |4 [) S; [. T( m1 Jvar imagedata = ctx.getimagedata(0, 0, w, h);
! c, e5 V( I7 S// examine every pixel,
8 c( a- D/ b4 g: v" ?// change any old rgb to the new-rgb
; E! R; H; @& C4 p4 kfor (var i = 0; i < imagedata.data.length; i += 4) { # s/ S% b# }+ t
// is this pixel the old rgb? / \* F- S* [" Z7 @, k- r% w: T
if (imagedata.data == oldred && imagedata.data[i + 1] == oldgreen && imagedata.data[i + 2] == oldblue) {
1 Y1 h" i8 C. c7 E// change to your new rgb 2 z- V; m3 Z; o+ A$ I, t6 T
imagedata.data = newred;
6 \. {; D. V1 r: k7 n; u" A6 |imagedata.data[i + 1] = newgreen;
9 j/ p0 i* p/ w5 h/ V' \imagedata.data[i + 2] = newblue; : `: j6 I2 W7 s& M
}
( h6 L2 B5 n& o1 g7 ]( `. J1 j; k}
; s7 p$ c; o6 d3 }- T7 \. _// put the altered data back on the canvas : {: P. ~& M; t8 }8 g) ?
ctx.putimagedata(imagedata, 0, 0);
$ I0 w( }  A+ T+ h; |1 S}
8 I% {+ u" Z8 \8 |</script>
) s7 j" ]% V9 F
6 N6 r* T, B% s3 j( C( g2 i更多网页制作信息请查看: 网页制作

回复|共 9 个

effoggikeftor 发表于 2015-12-16 09:58:55|美国 | 查看全部
看起来好~~像啊~~~~~
gevaemaidovef 发表于 2015-12-16 09:59:15|印度 | 查看全部
你这样的表现,就只配这几个字:窝囊废
tohme 发表于 2015-12-16 09:59:31|澳大利亚 | 查看全部
呵呵 放心 如我算错 你以后来砸我的帖子 呵呵
tohme 发表于 2015-12-16 09:59:55|乌克兰 | 查看全部
现在做什么网站好?
seazvyt 发表于 2016-2-12 15:42:10|美国 | 查看全部
现在做什么网站好?
GoodyFouppy 发表于 2016-2-12 15:42:26|美国 | 查看全部
您知道这个论坛的站长是谁吗?偷偷的告诉你他叫叶学得  好厉害的样子
GoodyFouppy 发表于 2016-2-12 15:42:38|英国 | 查看全部
哈哈~` 好久没有笑喽~
Acropozelan 发表于 2016-2-12 15:42:58|Reserved | 查看全部
因删贴不及时所产生的任何法律(书法,基本法,劳动法,婚姻法,输入法,国际法,今日说法,与台湾关系法及文中涉及或可能涉及以及未及之法,各地治安管理条例)纠纷或责任本人概不负责。
tohme 发表于 2016-2-12 15:43:00|卢森堡 | 查看全部
本人在此留言均为网络上复制,用于检验本人电脑键盘录入、屏幕显示的机械、光电性能。并不代表本人局部或全部同意、支持或者反对楼主观点。

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
Copyright © 2026 得知互动-专注Ai与站长技术交流社区-Ai交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表