HTML5图像操作

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        // put your code here
        ?>
        <canvas id="my_canvas" width="1200" height="700"> 浏览器不支持canvas </canvas>
        <img src="Desert.jpg">
        <script type="text/javascript">
            var canvas = document.getElementById('my_canvas');
            if(canvas.getContext){
                var ctx = canvas.getContext('2d');//获取2d上下文
                //画图
                var img = document.images[0];
                ctx.drawImage(img, 0, 0);
                //获取ImageData
                var imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);
                var data = imgData.data;//线性化4维数组(ImageData对象是4维数组,每一维分别表示r, g, b, a)
                //反色
                var r, g, b, a;
                for(var i = 0, len = data.length;i < len; i+=4){
                    //取色
                        r = data[i];
                        g = data[i+1];
                        b = data[i+2];
                        //a = data[i+3];//反色不需要透明度
                        //反色
                        data[i] = 255 - r;
                        data[i+1] = 255 - g;
                        data[i+2] = 255 - b;
                }

                imgData.data = data;//写回图像数据
                ctx.putImageData(imgData, 0, 0);//显示结果
            }
        </script>
    </body>
</html>

1/原图

2/效果图


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值