• javascript图像处理框架


    </pre><pre name="code" class="html"><!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>canvas图像处理</title>
    </head>
    <body>
        <h1>canvas</h1>
        <canvas id="canvas1" width="100" height="100">绘图区域</canvas>
    
    
    
    
        <script type="text/javascript">
            var canvas1 = document.getElementById("canvas1");
            var context1 = canvas1.getContext('2d');
            image = new Image();
            image.src = "z.bmp";
            image.onload = function () {
                context1.drawImage(image, 0, 0); //绘制原始图像,(0,0)表示图像的左上角位与canvas画布的位置
            }
    
    
        </script>
        <br />
        <button onclick="RGB2GRAY()">彩色转灰度</button>
    <br />
    <canvas id="canvas2" width="100" height="100"></canvas>
        <script>
           
    
            //彩色转灰度
            function RGB2GRAY() {
                var canvas2 = document.getElementById('canvas2');
                var context2 = canvas2.getContext('2d');
                var imagedata = context1.getImageData(0, 0, image.width, image.height);
                //getImageData(x1,y1,x2,y2)获取图像的rgba矩阵,其中截取图像的大小为(x1,y1)-(x2,y2) 的矩阵
                var imagedata1 = context2.createImageData(image.width, image.height);
                //createImageData(x,y):创建宽高分别为x,y的图像矩阵
                for (var j = 0; j < image.height; j += 1)
                    for (var i = 0; i < image.width; i += 1) {
                        k = 4 * (image.width * j + i);
                        var temp = imagedata.data[k + 0] * 0.299 + imagedata.data[k + 1] * 0.587 + imagedata.data[k + 2] * 0.114;
                        imagedata1.data[k + 0] = temp;
                        imagedata1.data[k + 1] = temp;
                        imagedata1.data[k + 2] = temp;
                        imagedata1.data[k + 3] = 255;
                    }
                context2.putImageData(imagedata1, 0, 0);
            }
     </script>
    </body>
    </html>
    在工程目录下需放置一张z.bmp的图片。画布大小可调整。框架就这样了,要实现其他功能可以照葫芦画瓢。


    版权声明:

  • 相关阅读:
    spring源码学习之【准备】cglib动态代理例子
    spring源码学习之【准备】jdk动态代理例子
    eclipse使用jetty插件出现内存溢出解决方案
    SpringMVC Controller 返回值的可选类型
    spring之bean的作用域scope的值的详解
    SVN与Git的区别
    java thread yield 的设计目的是什么?
    JAVA Set 交集,差集,并集
    Executor, ExecutorService 和 Executors 间的区别与联系
    java.util.concurrent.Executors类的常用方法介绍
  • 原文地址:https://www.cnblogs.com/walccott/p/4957118.html
Copyright © 2020-2023  润新知