第一步:栅格转json
第二步:编写解析json算法在canvas绘制渐变
var canvas = document.getElementById("cas"); var ctx = canvas.getContext("2d"); var colors=["#FF0000","#F00F00","#E11E00", "#D22D00", "#C33C00", "#B44B00", "#A55A00", "#966900", "#877800", "#788700", "#699600", "#5AA500", "#3CC300", "#2DD200", "#1EE000","#0FE000"]; for(var i = 0; i < testdata[0].header.ny; i++){ var g = ctx.createLinearGradient(0,testdata[0].header.ny-i*1-1,testdata[0].header.nx,testdata[0].header.ny-i*1-1); for(var j = 0; j < testdata[0].header.nx; j++){ g.addColorStop((j+1)/281,colors[parseInt(testdata[0].data[(i*testdata[0].header.nx)+j]/6.5)]); } ctx.fillStyle = g; ctx.fillRect(0,testdata[0].header.ny-i*1-1,testdata[0].header.nx,1); }
第三步:查看效果和原始对比
最后:贡献完成算法及样例数据代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <canvas id="cas" width="281" height="482"></canvas> <script type="text/javascript"> var testdata="示例数据太多,有需要请扫描联系"; var canvas = document.getElementById("cas"); var ctx = canvas.getContext("2d"); var colors=["#FF0000","#F00F00","#E11E00", "#D22D00", "#C33C00", "#B44B00", "#A55A00", "#966900", "#877800", "#788700", "#699600", "#5AA500", "#3CC300", "#2DD200", "#1EE000","#0FE000"]; for(var i = 0; i < testdata[0].header.ny; i++){ var g = ctx.createLinearGradient(0,testdata[0].header.ny-i*1-1,testdata[0].header.nx,testdata[0].header.ny-i*1-1); for(var j = 0; j < testdata[0].header.nx; j++){ g.addColorStop((j+1)/281,colors[parseInt(testdata[0].data[(i*testdata[0].header.nx)+j]/6.5)]); } ctx.fillStyle = g; ctx.fillRect(0,testdata[0].header.ny-i*1-1,testdata[0].header.nx,1); } </script> </body> </html>
感谢支持技术分享,请扫码点赞支持:
技术合作交流qq:2401315930