图像裁剪示例

Posted yanyanstyle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像裁剪示例相关的知识,希望对你有一定的参考价值。

概念:

 

我们在使用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();

以上是关于图像裁剪示例的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 裁剪图像

响应式图像裁剪

CSS裁剪图像到特定尺寸

如何使用默认裁剪意图裁剪 android marshmallow 中的图像?

在android中使用人脸检测裁剪图像

如何从图像选择器中裁剪图像?