图像颜色变化

1.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <style type="text/css">
        canvas {
        border:1px solid #f00;
        }
    </style>
    <script type="text/javascript" src="../src/easeljs/utils/UID.js"></script>
	<script type="text/javascript" src="../src/easeljs/geom/Matrix2D.js"></script>
	<script type="text/javascript" src="../src/easeljs/display/DisplayObject.js"></script>
	<script type="text/javascript" src="../src/easeljs/display/Container.js"></script>
	<script type="text/javascript" src="../src/easeljs/display/Stage.js"></script>
	<script type="text/javascript" src="../src/easeljs/events/MouseEvent.js"></script>
	<script type="text/javascript" src="../src/easeljs/utils/Ticker.js"></script>
	<script type="text/javascript" src="../src/easeljs/display/Bitmap.js"></script>
	<script type="text/javascript" src="../src/easeljs/filters/Filter.js"></script>
	<script type="text/javascript" src="../src/easeljs/filters/BoxBlurFilter.js"></script>
    <script type="text/javascript">
        var img;
        var stage;
        var angle;
        var canvas;
        var range;
        var speed;
        var bmp;
        function Init() {
            // 角度
            angle = 0;
            range = 30;
            // 范围
            speed = 0.1;
            img = new Image();
            img.onload = HandleImageLoad;
            img.src = "../Images/2.jpg";
        } 
        function HandleImageLoad() {
            canvas = document.getElementById("mycanvas");
            stage = new createjs.Stage(canvas);
            // The source object or URI to an image to display
            bmp = new createjs.Bitmap(img);
            bmp.cache(0, 0, img.width, img.height);
            stage.addChild(bmp);
            // 设置频率
            createjs.Ticker.setFPS(10);
            // 监听tick事件
            createjs.Ticker.addListener(window);
        }
        function tick() {
            angle += speed;
            UpdateImage();
        }
        function UpdateImage() {
            var value = Math.sin(angle) * range;
            bmp.updateCache();
            bmp.filters = [new createjs.BoxBlurFilter(value, value, 2)];
            stage.update();
        }
    </script>
</head>
<body onload="Init();">
    <canvas id="mycanvas" width="500" height="500"></canvas>
</body>
</html>

 2. 

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <style type="text/css">
        canvas {
            border: 1px solid #f00;
        }
    </style>
    <script type="text/javascript" src="../src/easeljs/utils/UID.js"></script>
    <script type="text/javascript" src="../src/easeljs/geom/Matrix2D.js"></script>
    <script type="text/javascript" src="../src/easeljs/display/DisplayObject.js"></script>
    <script type="text/javascript" src="../src/easeljs/display/Container.js"></script>
    <script type="text/javascript" src="../src/easeljs/display/Stage.js"></script>
    <script type="text/javascript" src="../src/easeljs/events/MouseEvent.js"></script>
    <script type="text/javascript" src="../src/easeljs/display/Bitmap.js"></script>
    <script type="text/javascript" src="../src/easeljs/geom/Rectangle.js"></script>
    <script type="text/javascript" src="../src/easeljs/filters/Filter.js"></script>
    <script type="text/javascript" src="../src/easeljs/filters/BoxBlurFilter.js"></script>
    <script type="text/javascript" src="../src/easeljs/filters/ColorFilter.js"></script>
    <script type="text/javascript" src="../src/easeljs/filters/ColorMatrixFilter.js"></script>
    <script type="text/javascript">
        var img;
        function Init() {
            img = new Image();
            img.onload = handleImageLoad;
            img.src = "../Images/2.jpg";
        }
        function handleImageLoad() {
            var canvas = document.getElementById("mycanvas");
            var stage = new createjs.Stage(canvas);
            var bmp = new createjs.Bitmap(img);
            bmp.x = (canvas.width - 2 * img.width) / 3;
            bmp.y = (canvas.height - 2 * img.height) / 3;
            stage.addChild(bmp);


            // 模糊
            // BoxBlurFilter(水平半径,垂直半径,次数)
            var blurFilter = new createjs.BoxBlurFilter(32, 2, 2);
            // 获取边界
            var margins = blurFilter.getBounds();
            bmp = bmp.clone();
            bmp.filters = [blurFilter];
            bmp.cache(margins.x, margins.y, img.width + margins.width, img.height + margins.height);
            // x坐标发生改变
            bmp.x += bmp.x + img.width;
            stage.addChild(bmp);

           // 允许您执行复杂的颜色操作,如修改饱和,亮度,或反相。
            var greyScaleFilter = new createjs.ColorMatrixFilter([
                0.33, 0.33, 0.33, 0, 0, // red
                0.33, 0.33, 0.33, 0, 0, // green
                0.33, 0.33, 0.33, 0, 0, // blue
                0, 0, 0, 1, 0  // alpha
            ]);
            bmp = bmp.clone();
            bmp.filters = [greyScaleFilter];
            bmp.cache(0, 0, img.width, img.height); // color filters don't change the bounds.
            bmp.y += bmp.y + img.height;
            stage.addChild(bmp);



            // 颜色转换
            var removeRedFilter = new createjs.ColorFilter(0, 1, 1, 1); // red, green, blue, alpha
            bmp = bmp.clone();
            bmp.filters = [removeRedFilter];
            bmp.cache(0, 0, img.width, img.height); // color filters don't change the bounds.
            // 与第一张图片横坐标位置一致
            bmp.x = (canvas.width - 2 * img.width) / 3;
            stage.addChild(bmp);



            stage.update();
        }
    </script>
</head>
<body onload="Init();">
    <canvas id="mycanvas" width="800" height="500"></canvas>
</body>
</html>

  

posted @ 2012-11-21 14:46  bradleydan  阅读(281)  评论(0)    收藏  举报