练习图像

<canvas id="canvas" width="500" height="500" style="border:1px solid #666;display:block;margin:0 auto">
    当前浏览器不支持canvas,请更换浏览器后再试。
</canvas>
<input type="range" id="scale-range" min="0.5" max="3.0" step="0.1" value="1.0" style="display: block;width:500px;margin:0 auto;margin-top:20px;">
<canvas id="watermask-canvas" style="display:none;border:1px solid #666;margin:0 auto">当前浏览器不支持canvas,请更换浏览器后再试。</canvas>
var canvas = document.getElementById(‘canvas‘);
var context = canvas.getContext(‘2d‘);
var slider = document.getElementById(‘scale-range‘);
var img = new Image();
var sw = canvas.width;//设置canvas中图像宽度
var sy = canvas.height;//设置canvas中图像高度

var watermaskCanvas = document.getElementById(‘watermask-canvas‘);
var watermaskContext = watermaskCanvas.getContext(‘2d‘);
window.onload = function(){

    img.src = ‘fanfan.jpg‘;

    var scale = slider.value;
    img.onload = function(){//必须等img onload完之后才可以绘制img
        drawImageByScale(scale);
        slider.onmousemove = function(){
            scale = slider.value;
            drawImageByScale(scale);
        }
    }

    // 设置 watermask canvas
    watermaskCanvas.width = 150;
    watermaskCanvas.height = 60;

    watermaskContext.font = ‘bold 30px 宋体‘;
    watermaskContext.fillStyle = ‘rgba(0, 0, 0, 0.5)‘;
    watermaskContext.textAlign = ‘center‘
    watermaskContext.textBaseline = ‘middle‘;
    watermaskContext.fillText(‘水印 - 水印‘, 75, 25);
}

function drawImageByScale(scale){
    var imgWidth = sw * scale;//缩放后的图像宽
    var imgHeight = sy * scale;//缩放后的图像高
    var dx = (canvas.width - imgWidth) / 2;//缩放后的图像在x轴上的偏移量
    var dy = (canvas.height - imgHeight) / 2;//缩放后的图像在y轴上的偏移量
    context.clearRect(0, 0, canvas.width, canvas.height);//重新绘制缩放后的图像前,需要清空之前绘制的图像。
    context.drawImage(img, dx, dy, imgWidth, imgHeight);
    context.drawImage(watermaskCanvas, canvas.width - watermaskCanvas.width, canvas.height - watermaskCanvas.height);
}
时间: 2024-08-13 01:13:53

练习图像的相关文章

mp4网页播放代码,有声音无图像的解决办法~

mp4网页播放代码,有声音无图像的解决办法~ 关于网页播放mp4格式的视频,找了一些插件,这里推荐一下video.js 官方网址:http://www.videojs.com/ github :https://github.com/videojs/video.js/ demo:http://www.videojs.com/downloads/video-js-4.12.5.zip 使用方法: ①引入文件:指派flash播放的swf文件 <link href="//example.com/p

Halcon学习之三:有关图像通道的函数

黑白摄像机会返回每个像素所对应的能量采用结果,这些结果组成了一幅单通道灰度值图像,而对于RGB彩色摄像机,它将返回每个像素所对应的三个采样结果,也就是一幅三通道图像.下面这些是与图像通道有关的函数: 1.access_channel ( MultiChannelImage : Image : Channel : ) 获取多通道图像MultiChannelImage的Channel通道的图像Image. 2.append_channel ( MultiChannelImage, Image : I

Halcon学习之六:获取Image图像中Region区域的特征参数

area_center_gray ( Regions, Image : : : Area, Row, Column )    计算Image图像中Region区域的面积Area和重心(Row,Column). cooc_feature_image ( Regions, Image : : LdGray, Direction : Energy,Correlation, Homogeneity, Contrast )   计算共生矩阵和推导出灰度特征值 Direction:灰度共生矩阵计算的方向  

数字图像处理,图像锐化算法的C++实现

http://blog.csdn.net/ebowtang/article/details/38961399 之前一段我们提到的算法都是和平滑有关, 经过平滑算法之后, 图像锐度降低, 降低到一定程度, 就变成了模糊. 今天我们反其道行之, 我们看看锐化是怎么做的. 这里的锐化, 还是的从平滑谈开去.我们先来观察原来的图像和平滑图像的区别: 原图 raw: 模糊图 blur: _________________________________________________________ 源图

【内存优化】加载一张图像资源到底占据多少内存

0.内容概览 1. 简介 2. 问题 3. 概念描述 4. 具体分析 5. 总结 6. 参考文档 1.简介 Android中经常要通过ImageView进行图片资源显示.在加载图片时,首先要考虑的两个因素就是体验问题和性能问题. 其中,体验问题是指图片显示的是否正确(例如Universal-Image-Loader在适配Adapter图片资源时会导致图片显示错位),分辨率是否合适等.而体验问题主要是指图片加载速度,以及更加重要的图片加载的内存占用问题.本文重点介绍ImageView加载图片中的内

什么是图像 -- opencv基础

opencv基础篇--到底什么是图像 什么是图像?英语中有两个单词来形容图像,一个是picture,一个是image.这两者虽然是形容同一个东西,但却又有着区别.picture代表实而有物的真实图像:而image代表着计算机中存储的图像,也代表想象中的图像. 而我们更多研究的便是image,计算机图像从广义地可分为矢量图和像素图(位图).矢量图,是由一系列计算机指令描述和记录的一幅图,一幅图可以解为一系列由点.线.面等组成的子图.像素图,则是由很多个点组成的,每个点都是由二进制数据来描述和存储其

画图软件中调整图像的大小

在打开Windows附件的画图软件时,有时候截屏.或者其它图形粘贴的大小不合式.需要调整图像的大小. 画图软件有两个界面可调整:内界面是蓝色背景中的白色矩形,外界面是画图软件的边框.内界面固定在边框内,但是长.宽可以通过鼠标拉伸. 拉伸时,鼠标为从右下至左上的斜线型.调整内界面才能调整图像的大小. 如果内界面和外界面边界基本重合,则需要将进度条向右下角汇聚,直至出现内边界的右下"角".从这个角出发,将内边界从下往上.从右往左 拉动,可以发现内边界能移动.通常,在内边界和外边界之间都保存

二维图像到二维屏幕的投影 用例

说明 在默认的2D渲染中,渲染的X,Y轴的范围都是从[-1, 1],屏幕的中心点(0,0),所以鼠标点击的坐标,必须转换成世界地理坐标系,在2D环境下,默认Z轴坐标为0.0 假设屏幕宽800,高4800 屏幕坐标 地理坐标 左上角 0,0 -1,1 左下角  0,480 -1,-1 右上角  800,0           1,1 右下角  800,480         1,-1 现在通过gluOrtho2D函数将二维图像到二维屏幕上的投影,将坐标移动到左下角,方向刚好和屏幕坐标的Y轴相反 代

OpenCV与EmguCV中的图像轮廓提取

轮廓是图像中表示边界的一系列点的集合. 虽然边缘检测算法可以根据像素间的差异检查出轮廓边界的像素,但是它并没有把轮廓做为一个整体表示出来.所以下一步工作是把这些边缘检测出来的像素组装成轮廓. openCV中可以用findContours()函数来从二值图像中提取轮廓. openCV中一般用序列来存储轮廓信息.序列中的每一个元素是曲线中一个点的位置. 函数findContours()从二值图像中寻找轮廓.findContours()处理的图像可以是Canny()后得到的有边缘像素的的图像,也可以是

Opencv图像识别从零到精通(7)----图像平移、旋转、镜像

根据vc6.0c++的学习经验,如果可以很好的自己编程,让图像进行平移旋转这些操作,那么就好像能够清楚的看见图像的内部结构当然这里你怎么访问像素,这个可以自己选一种适合的,最多的是ptr指针,at也是挺多的.看着很简单的变换,可以对图像处理上手的更快,当然对于旋转可能就稍微i难了一点,不过opencv提供了resize(0,remap()等这样的函数,可以方便的让我们进行学习-特别是旋转的时候,有很多的变换,你可以任意旋转一个角度,也可能一直旋转,当然还可以保持图像大小不变的旋转和大小变换的旋转