这篇文章主要介绍了HTML5 Canvas API中drawImage()方法的使用实例,drawImage()方法主要用来对图像进行缩放或裁剪,文中给出了其坐标及相关参数的用法,需要的朋友可以参考下

drawImage()是一个很关键的方法,它可以引入图像、画布、视频,并对其进行缩放或裁剪。

一共有三种表现形式:

语法 1

JavaScript Code复制内容到剪贴板context.drawImage(img,dx,dy);

语法 2

JavaScript Code复制内容到剪贴板context.drawImage(img,dx,dy,dw,dw);

语法 3

JavaScript Code复制内容到剪贴板context.drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh);

来看一下坐标草图:

PS: 不要在样式中定义 的宽和高,否则,里面所画的图片会自动放大或者缩小。

三参数的是标准形式,可用于加载图像、画布或视频;五参数的除了可以加载图像还可以对图像进行指定宽高的缩放;九参数的除了缩放,还可以裁剪。各参数意义见下表。参数描述

img

sx可选。开始剪切的 x 坐标位置。

sy可选。开始剪切的 y 坐标位置。

swidth可选。被剪切图像的宽度。

sheight可选。被剪切图像的高度。

x在画布上放置图像的 x 坐标位置。

y在画布上放置图像的 y 坐标位置。

width可选。要使用的图像的宽度。(伸展或缩小图像)

height要使用的图像的高度。(伸展或缩小图像)

下面,我们加载一个图片试试。

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);

}

};

运行结果:

创建相框:

这里,我们结合clip()和drawImage()以及三次贝塞尔曲线bezierCurveTo(),来为上面一个案例,加上一个心形的相框~

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);

}

};

运行结果:

是不是美美的?好啦,至此最关键的遮罩和图像裁剪以及说完了,其实在java.awt中,drawImage()也是一个至关重要的方法。有人说制作Java游戏界面,只要会用drawImage()就可以一招打遍天下~在Canvas里也是一样的。美工提供的素材基本都是图片,这个时候drawImage()对图片的处理就很重要了。即使基本功,也是对图片最重要的处理方法。

java drawimage 缩放_H5CanvasAPI中drawImage(图像进行缩放或裁剪)的使用实例相关推荐

  1. java POI在excel中插入等比例缩放的图片

    这个缩放的比例不是很准确,但还凑合能用,目前本人找不到其它方法,就先用这个. 先看一个关键的API方法:void org.apache.poi.ss.usermodel.Picture.resize( ...

  2. 在simulink中实现图像的读取和缩放操作

    目录 一.理论基础 二.核心程序 三.仿真测试结果 作者ID :fpga和matlab CSDN主页:https://blog.csdn.net/ccsss22?type=blog 擅长技术: 1.无 ...

  3. 【OpenCV 例程200篇】30. 图像的缩放(cv2.resize)

    [OpenCV 例程200篇]30. 图像的缩放(cv2.resize) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新 ...

  4. html 图片自由缩放_PS中的“缩放”

    大家好!今天我们来总结一下Photoshop中的缩放,主要有图像(图片)的缩放.选区缩放.图层样式缩放. 1.图像的缩放 选中图像-快捷键 Ctrl+T-选择变换点.单击鼠标拖动进行变换. 2.选区缩 ...

  5. java getbean方法_java相关:spring中通过ApplicationContext getBean获取注入对象的方法实例...

    java相关:spring中通过ApplicationContext getBean获取注入对象的方法实例 发布于 2020-12-19| 复制链接 分享一篇关于关于spring中通过Applicat ...

  6. java drawimage api_HTML5 Canvas API中drawImage()方法的使用实例

    drawImage()是一个很关键的方法,它可以引入图像.画布.视频,并对其进行缩放或裁剪. 一共有三种表现形式: 语法 1 JavaScript Code复制内容到剪贴板 context.drawI ...

  7. java中drawimage方法_canvas.drawImage()方法详解

    首先看html5.js /** @param {Element} img_elem @param {Number} dx_or_sx @param {Number} dy_or_sy @param { ...

  8. Java中的图像锐化操作

    ** Java中的图像锐化操作 ** 一.该图像锐化的思想: 本文的图像锐化是将图像中的R,G,B的值分别从原图像中提出,然后将分别将这三个R,G,B的值分别与卷积核进行卷积,最终再将最后的三个卷积的 ...

  9. Java中实现图像的卷积效果

    ** Java中实现图像的卷积效果 ** 图像的卷积: 指的是使用一个卷积核(kernel)对图像中的每一个像素进行一些列操作.卷积核(算子)是用来做图像处理时的矩阵,图像处理时也称为掩膜,是于原图像 ...

最新文章

  1. 单片机对于大学生难学吗?
  2. FPGA设计——全局曝光CMOS图像采集与USB2.0显示
  3. 虚幻争霸服务器维护,《虚幻争霸》将于4月停止运营 玩家可全额退款
  4. leetcode[161] One Edit Distance
  5. 如何设计一门语言(十)——正则表达式与领域特定语言(DSL)
  6. hdu 3065 病毒侵袭持续中(AC自动机)
  7. NET问答: 是否有通用的方法判断一个 Type 是 Number ?
  8. LeetCode 295. 数据流的中位数(大小堆)
  9. 阿里工程师是如何系统化地总结缓存相关知识的
  10. 模仿Bootstrap插件的放大镜插件
  11. oracle报错00838,ORA-00838: Specified value of MEMORY_TARGET is too small
  12. [Linux]局域网设置-远程登录GDMSETUP
  13. 普华永道报告:三波自动化浪潮将依次出现,人类工作将显著受到影响
  14. 【STM32】 ESP8266WIFI模块
  15. OAI配置eNB时error解决
  16. Java main是什么_java中的public static void main是什么意思
  17. 设计模式实例php,PHP三种设计模式实例教程
  18. CMake基础教程(3)cmake变量
  19. 机器学习作业2编程作业(python):Logistic Regression
  20. php 获取ip地址所在的区域

热门文章

  1. java 的httpentity_java – 为什么作者使用EntityUtils.consume(httpEntity);?
  2. 用qt编译qmake
  3. NCST集训队排位赛(2021-04-25)
  4. 20.2.25排位赛A
  5. matlab删失数据威布尔,随机删失数据下基于EM算法的Weibull分布参数估计
  6. Java如何获取今天周几
  7. PPT打印技巧——你还在一页打六张吗?
  8. streamlit使用altair画图并保存png图片
  9. 测试如何沟通和如何顺利通过试用期
  10. 解决 Chrome/Firefox 中 Sans-serif 字体显示的问题