所有分类
  • 所有分类
  • 后端开发
画出完美画面!drawImage()三五九,大小随心调

画出完美画面!drawImage()三五九,大小随心调

这篇文章主要介绍了中drawimage()方法的使用实例,drawimage()方法主要用来对图像进行缩放或裁剪,文中给出了其坐标及相关参数的用法,需要的朋友可以参考下即使基本功,也是对图片最重要的处理方法。

drawImage()方法概述

在网页构建过程里,drawImage()这种招儿挺实用的。它能让我们把图形、画布甚至视频等统统弄进来,还能缩小、裁切它们。通过用好drawImage(),咱们完全可以把图片整得漂亮点,使页面更加有魅力!drawImage()至少有三种模式,分别是三档、五档和九档。这仨用法效果那是大不相同。

三参数形式

好,你问的这个就是最基本的三参数模式!这个,就主要用来加载图片,也能处理画板还有视频。只要告诉我你想要的图片在画板上的具体位置,它就能乖乖地在那儿出现了。而且这种模式下图片可不会被缩小或者裁掉,保证原汁原味~

context.drawImage(img,dx,dy);

五参数形式

context.drawImage(img,dx,dy,dw,dw);

这个五参数形式不只是能装入图片,还能给图片定个框框来缩小或放大它!只要设定好你想要的照片在画布上占据的位置和大小,就能够随意调整照片有多大。这种方法特别适合那些只需要搞些简单照片大小调整的情况。

九参数形式

九参数形式可不简单不仅能改变大小,还能帮你剪照片!只要告诉它原图从哪儿开始剪,目标图片要多大多小,还有在画布上的哪个位置,再加上你想要的目标图片大小,就能随心所欲地大显身手。而且特别适合那些想要细致处理并展现图片的场合~

context.drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh);

各参数含义解析

-起始剪裁 x 轴定位:告诉我你想从源图片上哪个地方开始剪裁,就是剪去的那一块图像左上角在哪儿。

画出完美画面!drawImage()三五九,大小随心调

-从哪儿开始剪?这是剪的时候,这块儿的左上角 y 轴坐标!

– swidth:被剪切图像的宽度。

– sheight:被剪切图像的高度。

-图像在画布里的x位置在哪儿?:说清楚目标区域左上角点在画布里的x轴坐标~

-图片放哪儿?Y轴的数值就是目标区域左上角点在画板里 Y 轴上的位置。

– width:要使用的图像的宽度。

– height:要使用的图像的高度。

加载图片示例

接下来让我用简单的例子教你如何用drawImage()方法导入图片。首先我们得有个画布,然后再将图片贴上去:

javascript
直接拿div='myCanvas'的canvas进来用。
把画布给到咱们的2D风景区,咱们就能开始画图了。
const img = new Image();
img.src ='image.jpg';
img.onload = function(){
    ctx.drawImage(img,0,0);
}

看了这段代码,你就知道如何把’image.jpg’这样的图放到我叫它’myCanvas’的画布里,还能让它乖乖地呆在左上方!

结合clip()和drawImage()绘制心形相框

除了基础款,drawImage()这个功能其实还有很多花样可以玩!比如说,你把它和clip()、bezierCurveTo()这俩方法结合起来,就可以搞出个很酷的心形相框,给之前展示的那张图片再添点色彩啦:

ctx.beginPath();

ctx.moveTo(75, 40);

咱这儿用了几次贝塞尔曲线,搞定了这几个点:(75, 37)、(70, 25)和(50, 25)。

我们来画出直线,起始点是20、25,接下来是两点在同一水平线上(依然在20处),但直线的高度是变化的。从20开始,我们将画线高度设为62.5,最后仍回到同样一个20,即起点和终点都是20,只是中间的过程通过Bezier曲线平滑过渡。

JavaScript Code复制内容到剪贴板
   
   
   
       
    drawImage()   
       
        body { background: url("./images/bg3.jpg") repeat; } 
        #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }   
       
   
   

你的浏览器居然不支持Canvas?!赶快换一个吧!!

window.onload = function(){ var canvas = document.getElementById("canvas"); canvas.width = 800; canvas.height = 600; var context = canvas.getContext("2d"); context.fillStyle = "#FFF"; context.fillRect(0,0,800,600); var img = new Image(); img.src = "./images/20-1.jpg"; img.onload = function(){ context.drawImage(img,200,50); } };

画个折角,起点在20, 80,终点是40, 102和75, 120。

直接在(110,102)到(130,80)的路径上,画个抛物线连接到(130,62.5)。

画出完美画面!drawImage()三五九,大小随心调

我来画个弧线,起点是130,离地高度62.5厘米;然后是130,离地高度25厘米;最后是100,离地高度也是25厘米。

总之,这条路径是这样的:从(85, 25)开始,到(75, 37)和(75, 40)结束。

ctx.clip();

ctx.drawImage(img,0,0);

上边的代码帮你搞定了,搞定一颗爱心形状的相框还把图插进去。瞬间让原本平淡无奇的图片也变得好看可爱起来!

JavaScript Code复制内容到剪贴板
   
   
   
       
    绘制心形相框   
       
        body { background: url("./images/bg3.jpg") repeat; } 
        #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }   
       
   
   

你的浏览器居然不支持Canvas?!赶快换一个吧!!

window.onload = function(){ var canvas = document.getElementById("canvas"); canvas.width = 800; canvas.height = 600; var context = canvas.getContext("2d"); context.fillStyle = "#FFF"; context.fillRect(0,0,800,600); context.beginPath(); context.moveTo(400,260); context.bezierCurveTo(450,220,450,300,400,315); context.bezierCurveTo(350,300,350,220,400,260); context.clip(); context.closePath(); var img = new Image(); img.src = "./images/20-1.jpg"; img.onload = function(){ context.drawImage(img,348,240,100,100); } };

drawImage()在Java.awt中应用

不仅仅是前端开发,Java里的Java.awt还有drawImage()这个好用的家伙,特别是做Java游戏界面那可是离不开它!好多素材都要靠这种方式来处理图片,所以用得溜溜的就能让你的工作省心很多!

总结与展望

通过这篇文章,我们学习了 drawImage()这个实用的画图方法。不管是做网页还是 Java 的应用程序,画图就得用它!大家得多练习,把 drawImage()融入到项目里去,让你的页面变得更加生动有趣!

小伙伴们,你们有没有在前端开发或者Java应用开发中遇到过用drawImage()方法有困难的情况?快来跟我们聊聊,互相学习进步~

画出完美画面!drawImage()三五九,大小随心调

原文链接:https://www.icz.com/technicalinformation/web/vue2/2024/04/13533.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?