首先看html5.js

/**
@param {Element} img_elem
@param {Number} dx_or_sx
@param {Number} dy_or_sy
@param {Number} [dw_or_sw]
@param {Number} [dh_or_sh]
@param {Number} [dx]
@param {Number} [dy]
@param {Number} [dw]
@param {Number} [dh]
*/
CanvasRenderingContext2D.prototype.drawImage = function(img_elem,dx_or_sx,dy_or_sy,dw_or_sw,dh_or_sh,dx,dy,dw,dh) {};
再底层
drawImage(image: HTMLElement, offsetX: number, offsetY: number, width?: number, height?: number, canvasOffsetX?: number, canvasOffsetY?: number, canvasImageWidth?: number, canvasImageHeight?: number): void;

其实平时调用支持三种传参
void ctx.drawImage(image, dx, dy);//dx,dy决定了生成的图像与画布的间隔距离
void ctx.drawImage(image, dx, dy, dWidth, dHeight);//dWidth, dHeight决定了生成图片的宽高,默认是img.width,img.height
void ctx.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);// dWidth, dHeight是对生成图片的缩放值


  image
绘制到上下文的元素。允许任何的 canvas 图像源(CanvasImageSource),例如:CSSImageValueHTMLImageElementSVGImageElementHTMLVideoElementHTMLCanvasElementImageBitmap 或者OffscreenCanvas
  dx
目标画布的左上角在目标canvas上 X 轴的位置。生成图像与画布坐标第一象限的间隔(y轴)
  dy
目标画布的左上角在目标canvas上 Y 轴的位置。生成图片与画布坐标第四象限的间隔(x轴)
  dWidth可选
在目标画布上绘制图像的宽度。 允许对绘制的图像进行缩放。 如果不说明, 在绘制时图片宽度不会缩放。
  dHeight可选
在目标画布上绘制图像的高度。 允许对绘制的图像进行缩放。 如果不说明, 在绘制时图片高度不会缩放。
  sx可选
需要绘制到目标上下文中的,源图像的矩形选择框的左上角 X 坐标。
  sy可选
需要绘制到目标上下文中的,源图像的矩形选择框的左上角 Y 坐标。
  sWidth可选
需要绘制到目标上下文中的,源图像的矩形选择框的宽度。如果不说明,整个矩形从坐标的sx和sy开始,到图像的右下角结束。
  sHeight可选
需要绘制到目标上下文中的,源图像的矩形选择框的高度。

抛出异常

INDEX_SIZE_ERR
如果 canvas 或者图像矩形区域的宽度或高度为0 。
INVALID_STATE_ERR
图像没有数据。
TYPE_MISMATCH_ERR
提供的原始元素不支持。
NS_ERROR_NOT_AVAILABLE
图像尚未加载。使用.complete === true.onload确定何时准备就绪。
 

最新文章

  1. jieba.NET与Lucene.Net的集成
  2. 完整Deploy WebPlayer的Config
  3. 老李推荐:第6章8节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-小结
  4. 树莓派超声波测距+蜂鸣器(c语言)
  5. git常用命令说明教程
  6. 01-vue学习之前的准备
  7. window.location.href webkit不兼容
  8. Android中的Sqlite中的onCreate方法和onUpgrade方法的执行时机
  9. Flutter - 本地化启动列表中App名字
  10. 通过全备+主从同步恢复被drop的库或表
  11. 微信小程序网络封装-简单高效
  12. javascript基础拾遗(十)
  13. 【Eclipse】启动时报错:No Java virtual machine (已解决)
  14. [微信小程序]微信开发工具出现 1not found 编译 .wxss文件信息错误怎么办?
  15. HTML5练习2
  16. 采用Filter的方法解决Servlet的编码问题
  17. selenium + chrome 被检测,反反爬小记
  18. 史诗级Java/JavaWeb学习资源免费分享
  19. 关于使用modelsim的一点感想
  20. Linux 命令-1

热门文章

  1. Codeforces986E Prince's Problem 【虚树】【可持久化线段树】【树状数组】
  2. Codeforces Round #471 (Div. 2) F. Heaps(dp)
  3. 简单聊聊WebSocket
  4. IT人员必须掌握的10项软技能
  5. luogu5020 [NOIp2018]货币系统 (完全背包)
  6. Number Cutting Game HDU - 2848(DFS)
  7. 【redis】redis常用命令及操作记录
  8. nuxt.js实战之开发环境配置
  9. 基于Jenkins,docker实现自动化部署(持续交互)
  10. A1105. Spiral Matrix