canvas绘制图片的三种方法(图文示例)

这篇具有很好参考价值的文章主要介绍了canvas绘制图片的三种方法(图文示例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

canvas绘制图片的三种方法(图文示例),# canvas示例教程100+,canvas画图片,canvas写入图片

查看专栏目录

canvas示例教程100+专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重要的帮助。

如何使用canvas来绘制图片呢?这里有三种方法。

语法:

drawImage(image, dx, dy)
drawImage(image, dx, dy, dWidth, dHeight)
drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
参数图示
canvas绘制图片的三种方法(图文示例),# canvas示例教程100+,canvas画图片,canvas写入图片

示例效果图

canvas绘制图片的三种方法(图文示例),# canvas示例教程100+,canvas画图片,canvas写入图片文章来源地址https://www.toymoban.com/news/detail-793546.html

示例源代码(共90行)

/*
* @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN)
* @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。
* @Email: 2909222303@qq.com
* @weixin: gis-dajianshi
* @First published in CSDN
* @First published time: 2024-01-16
*/
<template>
	<div class="djs_container">
		<div class="top">
			<h3>canvas绘制图片的三种方法(图文示例)</h3>
			<div>大剑师兰特, 还是大剑师兰特,gis-dajianshi</div>
			<h4>
				<el-button type="primary" size="mini" @click="draw1()">绘制图片</el-button>
				<el-button type="danger" size="mini" @click="clearCanvas()">清除</el-button>
			</h4>			
		</div>
		<div class="dajianshi ">
			<canvas id="dajianshi" ref="mycanvas" width="980" height="490"></canvas>
		</div>
	</div>
</template>
<script>
	export default {
		data() {
			return {
				ctx: null,
				canvas: null,
				imageUrl:require('../assets/amierhan.png'),// 此图片大小990*496
				imageUrl2:require('../assets/tx.png'),  // 此图片大小75*75
			}
		},
		mounted() {
			this.setCanvas()
		},
		methods: {
			clearCanvas() {
				this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
			},
			setCanvas() {
				this.canvas = document.getElementById('dajianshi');
				if (!this.canvas.getContext) return;
				this.ctx = this.canvas.getContext("2d");
			},
			draw1() {
				this.clearCanvas()
				const image = new Image();
				image.src = this.imageUrl;
				image.addEventListener("load", () => {
					console.log(image)
				  //按照设定的尺寸,将原图缩放在其中	
				  this.ctx.drawImage(image, 0, 0, 495, 297);
				  //从原图上截取一部分,然后绘制到指定的区块中
				  this.ctx.drawImage(image, 350,350,247,148, 600, 300, 247, 148);					  
				});  
				const image2 = new Image();			  
				image2.src = this.imageUrl2;
				image2.onload=()=> {
				   this.ctx.drawImage(image2,700, 200);				  
				 } 			  
			},
		}
	}
</script>

<style scoped>
	.djs_container {
		width: 1000px;
		height: 680px;
		margin: 50px auto;
		border: 1px solid #992299;
		position: relative;
	}

	.top {
		margin: 0 auto 0px;
		padding: 10px 0;
		background: #992299;
		color: #fff;
	}

	.dajianshi {
		margin: 5px auto 0;
		border: 1px solid #ccc;
		width: 980px;
		height: 490px;
		background-color: #f9f9f9;
	}
</style>


canvas基本属性

属性 属性 属性
canvas fillStyle filter
font globalAlpha globalCompositeOperation
height lineCap lineDashOffset
lineJoin lineWidth miterLimit
shadowBlur shadowColor shadowOffsetX
shadowOffsetY strokeStyle textAlign
textBaseline width

canvas基础方法

方法 方法 方法
arc() arcTo() addColorStop()
beginPath() bezierCurveTo() clearRect()
clip() close() closePath()
createImageData() createLinearGradient() createPattern()
createRadialGradient() drawFocusIfNeeded() drawImage()
ellipse() fill() fillRect()
fillText() getImageData() getLineDash()
isPointInPath() isPointInStroke() lineTo()
measureText() moveTo() putImageData()
quadraticCurveTo() rect() restore()
rotate() save() scale()
setLineDash() setTransform() stroke()
strokeRect() strokeText() transform()
translate()

到了这里,关于canvas绘制图片的三种方法(图文示例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS图片水平垂直居中的三种方法

    我们知道img元素为行内快元素,所以首先设置图片元素的父元素里文字水平居中,行高与整体高度一致。 其次最重要的是设置图片元素的vertical-align属性为middle,该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐方式。 代码示例: 具体方式是先使用定位让图

    2024年02月13日
    浏览(47)
  • python读取和保存图片的三种方法

    可以看到opencv读取的图片数据类型是uint8格式(属于numpy),uint8是专门用于存储各种图像的(包括RGB,灰度图像等),范围是从0–255。 读取的形状为(H,W,C),BGR 还有一个保存方式叫plt.savefig(),但是使用这种方式保存的时候,保存的图片会显示空白,参考了plt.savefig保存图片

    2024年02月12日
    浏览(103)
  • css实现图片全屏铺满自适应的三种方法

    前两天做了一个登录页面,登录页面背景是一张图片。图片要铺满整个屏幕,当时再将整个图片铺满时,总是遇到各种问题:①.图片虽然铺满整个屏幕,但是图片变形了;②.图片没有变形,但是图片没有铺满整个屏幕。 background: url(\\\"bg.png\\\") no-repeat; height:100%;--- height:100vh; wi

    2024年02月13日
    浏览(37)
  • 【100个 Unity实用技能】☀️ | Unity读取本地文件(Json,txt等)的三种方法示例

    老规矩,先介绍一下 Unity 的科普小知识: Unity 是 实时3D互动内容创作和运营平台 。 包括 游戏开发 、 美术 、 建筑 、 汽车设计 、 影视 在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和

    2023年04月08日
    浏览(66)
  • 怎么修改svg的颜色? img引入svg图片怎么修改颜色的三种方法

    效果图 此时css对svg文件无法生效,此时要用到CSS3滤镜filter中的drop-shadow,通过生产一个可指定颜色的阴影放置于svg的位置,并将原始svg移出视线 效果图 如果项目中用到svg比较多,前两种方法会比较啰嗦,每次写一遍方法二的样式比较麻烦,这时可以考虑封装组件, 结合实际需要

    2024年02月11日
    浏览(55)
  • canvas截取视频图像(图文示例)

    查看专栏目录 canvas示例教程100+专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重要的帮助。 如何使用canvas截取视频图像呢?这里其实是监听了

    2024年01月18日
    浏览(37)
  • 微信小程序canvas绘制自适应图片,UniApp canvas绘制自适应图片

     需求:画布宽高为686 * 686 的正方形(可以进行调整根据自身需要来)             当图片宽度大于高度时,对图片宽度进行裁剪              当图片高度大于宽度时,对图片高度进行裁剪              我是用uniApp进行开发的,如果是小程序原生,直接把“uni” 改为 “

    2024年02月09日
    浏览(67)
  • 小程序 canvas 绘制图片

    绘制图片的问题 1、canvas不能绘制网络图片需要转换成本地图片进行使用 2、多张图片绘制需要调用 img.onload,进行嵌套绘制 html

    2024年02月14日
    浏览(40)
  • 微信小程序使用canvas绘制网络图片,使用canvas将图片变成圆形

    以上的写法 会造成某些图标无法绘制上去, 解决方法是在网络图片中不断嵌套,先绘制大图片,再绘制小图片的顺序 网上说使用先下载到本地,再使用img.src加载,我尝试过还是不行 长用在海报,需要将用户的头像画到canvas图片上,如: 其原理就是在图片上面放一个圆

    2024年02月13日
    浏览(70)
  • ue4绘制线的三种方式

    第一种方式,是用样条线,简明扼要,但是打包后就消失了。 USplineComponent* MyActor::GenerateSplineComponent(TArray FVector posArray, AActor* actor) { } 第二种方式是用ULineBatchComponent画线,这个是世界坐标系的,也就是说,即使父子节点,也不能用相对位置。好处是,是实体,可以从样条线中

    2023年04月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包