【一天一个canvas】图像处理教程(十二)

Canvas是一个功能相当强大的画布,任由你去书写,当然,他也支持了图像处理的功能。

drawImage(image,Dx,Dy);//用于显示,有时会超出

drawImage(image,Dx,Dy,Dw,Dh);//用于缩放

drawImage(image,Sx,Sy,Sw,Sh,Dx,Dy,Dw,Sh);//用于剪裁、缩放、显示

注:image是一个图像对象; Dx是画布中的x坐标,Dy是画布中的y坐标,Dw是图像在画布中的宽度,Dy是图像在画布中的高度,Sx,Sy,Sw,Sh分别是原图像中的x、y、width、height(本人较懒,略写一下)。

下面是一个给出的剪裁的方法源代码:

<!DOCTYPE html>
<html>
 <head>
    <meta charset="utf-8">
    <title>Canvas</title>
 </head>
 <style type="text/css">
    body{margin:20px auto; padding:0; width:800px; }
    canvas{border:dashed 2px #CCC}
 </style>
 <script type="text/javascript">
    function $$(id){
        return document.getElementById(id);
    }
    function pageLoad(){
        var can = $$(‘can‘);
        var cans = can.getContext(‘2d‘);
        var objImg = new Image();
        objImg.src = ‘lin.jpg‘;
        objImg.onload = function (){
            cans.drawImage(objImg,500,400,500,400,100,100,500,400);
        }
    }
 </script>
<body >
    <canvas id="can" width="800px" height="600px" onclick="img_click(this);"></canvas>
</body>
</html>

原图像——一个美女,哈哈哈

显示后:

如有问题,可参考:http://www.aqee.net/html-5-canvas-tutorial-displaying-images/

时间: 2024-10-11 18:31:26

【一天一个canvas】图像处理教程(十二)的相关文章

Myeclipse/STS 首次在本地部署配置一个Spring MVC 项目 (十二)

1. 在本地新创建一个文件夹 ,做为项目工作空间; 2. 用 Myeclipse 或 STS 进入该文件夹,该文件夹就成为项目的工作空间: 3. 就要进 窗口-首选项,配置: 环境默认编码: 1>. 常规下面 内容类型 .txt 文本 UTF-8 更新 2>. 常规 – 工作空间 , 文本文件编码 3>. 常规 – 编辑器 – 文本编辑器 – 拼写 配置 java JDK 为 项目需要的版本 比如 (1.7) : 配置 Myeclipse 下的 Servers 及 validation 

WebGL简易教程(十二):包围球与投影

目录 1. 概述 2. 实现详解 3. 具体代码 4. 参考 1. 概述 在之前的教程中,都是通过物体的包围盒来设置模型视图投影矩阵(MVP矩阵),来确定物体合适的位置的.但是在很多情况下,使用包围盒并不方便计算,可以利用包围盒再生成一个包围球,利用包围球来设置MVP矩阵. 在<WebGL简易教程(十):光照>中,给地形赋予了固定方向的平行光.这篇教程的例子就是想模拟在平行光的视角下地形的情况.对于点光源光,可以用透视投影来实现渲染的效果:而平行光就需要通过正射投影来模拟.并且,这种正射并不是

Redis教程(十二):服务器管理命令总结

转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/140.html 一.概述: Redis在设计之初就被定义为长时间不间断运行的服务进程,因此大多数系统配置参数都可以在不重新启动进程的情况下立即生效.即便是将当前的持久化模式从AOF切换到RDB也无需重启.    在Redis中,提供了一组和服务器管理相关的 ,其中就包含和参数设置有关的CONFIG SET/GET command. 二.相关命令列表: 命令原型 时间复杂度

Spring Boot2 系列教程 (十二) | 整合 thymeleaf

前言 如题,今天介绍 Thymeleaf ,并整合 Thymeleaf 开发一个简陋版的学生信息管理系统. SpringBoot 提供了大量模板引擎,包含 Freemarker.Groovy.Thymeleaf.Velocity 以及 Mustache,SpringBoot 中推荐使用 Thymeleaf 作为模板引擎,因为 Thymeleaf 提供了完美的 SpringMVC 支持.Thymeleaf 是新一代 Java 模板引擎,在 Spring 4 后推荐使用. 什么是模板引擎? Thym

Wix 安装部署教程(十二) -- 自动更新WXS文件

上一篇分享了一个QuickWIX,用来对比两个工程前后的差异,但是这样还是很繁琐,而且昨天发现有Bug,目录对比有问题.这次改变做法,完全让程序自动去更新WXS文件,然后再用CCNet去自动编译,这样的话,工程师更新文件,再也不用我去编译,发布了. 思路:在原来的基础上,传入工程路径和目标文件夹,用模板的方式,更新变动的部分生成新的WXS文件覆盖原来的文件,一开始我思路搞错了,想在比较的基础上去更新变动的部分,比如一个文件删除了,就把这个File移除掉,同理对于组件和目录,但是这样比较费事,容易

linux程序设计——取消一个线程(第十二章)

12.7    取消一个线程 有时,想让一个线程能够要求还有一个线程终止,就像给它发送一个信号一样. 线程有方法能够做到这一点,与与信号处理一样.线程能够被要求终止时改变其行为. pthread_cancel是用于请求一个线程终止的函数: #inlude <pthread.h> int pthread_cancel(pthread_t thread); 这个函数提供一个线程标识符就能够发送请求来取消它. 线程能够用pthread_setcancelstate设置线程的取消状态 #include

DHTMLX 前端框架 建立你的一个应用程序 教程(十)--保存表单中的数据

保存表单中的数据 现在我们所要做的是 当用户点击提交按钮的时候  我们将表单中的数据进行保存操作. 我们可以使用dhtmlxDataProcessor. 来进行操作.它是一个数据组件,可以提供与服务器端的通信和交互.  它监控所有的数据更改  可以与服务器进行增删改查的操作 这里我们需要的是进行更新的操作 保存更改的数据到后台 1.在首页中我们添加一下代码 'index.html' file var dpg = new dataProcessor("data/contacts.php"

【转】抓包工具Fiddler的使用教程(十二)下:Fiddler抓取HTTPS

在教程十二(上),我们也了解了HTTPS协议,该教程就和大家分享Fiddler如何抓取HTTPS 抓包工具Fiddler的使用教程(十二):[转载]HTTPS协议 再次回忆一下关键内容: iddler如何在服务器与客户端之间充当第三者呢? 服务器->客户端:Fiddler接收到服务器发送的密文, 用对称密钥解开, 获得服务器发送的明文.再次加密, 发送给客户端. 客户端->服务端:客户端用对称密钥加密,被Fiddler截获后,解密获得明文.再次加密,发送给服务器端.由于Fiddler一直拥有通

canvas图像处理

最近在慕课网看到一个canvas图像处理的教程,现在总结一下. 不多说其它了,开始说代码吧. 以下canvasA是原图的画布,canvasB是处理后的图像的画布 RGB通道过滤 RGB通道过滤 function filter(){ var imageData = contextA.getImageData(0,0,canvasA.width,canvasA.height); //Uncaught SecurityError: Failed to execute 'getImageData' on

CRL快速开发框架系列教程十(导出对象结构)

本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框架系列教程四(删除数据) CRL快速开发框架系列教程五(使用缓存) CRL快速开发框架系列教程六(分布式缓存解决方案) CRL快速开发框架系列教程七(使用事务) CRL快速开发框架系列教程八(使用CRL.Package) CRL快速开发框架系列教程九(导入/导出数据) CRL快速开发框架系列教程十(