zoukankan      html  css  js  c++  java
  • 图像裁剪示例

    概念:

    我们在使用Canvas绘制图像时,我们经常会想要只保留图像的一部分,这时我们可以使用Canvas API自带的图像裁剪功能来实现这一想法。此功能是指,在画布内使用路径,只绘制该路径所包括区域内的图像,不绘制路径外的图像。

    使用图像上下文对象的不带参数的clip方法来实现Canvas元素的图像裁剪功能。

    下面,我们来应用一番,在应用中,把画布背景绘制完成后,调用creat5StartClip函数,在函数中,创建一个五角星的路径,然后使用clip方法设置裁剪区域。具体的执行流程为先装载图像,然后调用drawImg函数,在该函数中调用creat5StarClip创建路径,设置裁剪区域,然后绘制经过裁剪后的图像

    ——最终可以绘制出一个五角星范围内的图像!

    应用:

    核心代码

    function draw(id){
    var canvas=document.getElementById("id");
    if(canvas==null)
    return false;
    var context=canvas.getContext("2d");
    var gr = context.createLinearGradient(0,400,300,0);
    gr.addColorStop(0,'rgb(255,255,0)');
    gr.addColorStop(1,'rgb(0,255,255)');
    contxt.fillStyle = gr;
    contxt.fillRect(0,0,400,300);
    image=new Image();
    image.onload = function(){
    drawImg(context,img);
    };
    image.src = "image/Tulips.jpg";

    }
    function drawImg(context,image){
    creat5StarClip(context);
    context.drawImage(image,-50,-150,300,300);
    }
    function creat5StarClip(context){
    var n = 0;
    var dx = 100;
    var dy = 0;
    var s = 150;
    context.beginPath();
    context.translate(100,150);
    var x = Math.sin(0);
    var x = Math.cos(0);
    var dig = Math.Pi/5*4;
    for(var i = 0;i<5;i++)
    {
    var x = Math.sin(i*dig);
    var x = Math.cos(i*dig);
    comtext.lineTo(dx+x*s,dy+y*s);
    }
    context.clip();
    }

  • 相关阅读:
    【PAT】1001 害死人不偿命的(3n+1)猜想(动态更新)
    文件指令集
    近距离接触电脑
    文件管理
    文件写作方法
    文件读取方法
    打开文件的逻辑
    话术库
    max的逻辑
    抽象化指令
  • 原文地址:https://www.cnblogs.com/yanyanstyle/p/11348937.html
Copyright © 2011-2022 走看看