meface/docs/article/visual/canvas_advance.md

44 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Canvas图片
date: 2021-04-30
author: ac
tags:
- Canvas
categories:
- 可视化
---
## Canvas 加载图片
用于动态的图像合成或者作为图形的背景,以及游戏界面等
操作图片的步骤:
1. 获得需要绘制的图片,图片源的类型:
- HTMLImageElement对象由Image()方法创建,或任何的\<img>元素
- HTMLVideoElement对象用一个HTML的\<video>元素作为你的图片源,可以从视频中抓取当前帧作为一个图像
- HTMLCanvasElement对象可以使用另一个 \<canvas> 元素作为你的图片源。
- ImageBitmap对象这是一个高性能的位图可以低延迟地绘制它可以从上述的所有源以及其它几种源中生成。
2. 使用drawImage()方法将图片绘制到画布上
- drawImage(image,x,y)x,y为图像在canvas里的起始坐标
- drawImage(image, x, y, width, height)width和height用来控制图片在canvas中缩放的大小
- drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
```javascript
window.onload = init;
function init(){
var ctx = document.getElementById("canvas").getContext("2d");
var img = new Image();
img.src = "./images/bg.jpg";
//使用 data:url的方式嵌入图片
// img.src = "data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==";
img.onload = function(){
//执行drawImage
ctx.drawImage(img,0,0,600,450);
}
}
```