4.3_水印的绘制
来源:互联网 发布:阿里云带宽价格 编辑:程序博客网 时间:2024/06/05 20:52
4.3_水印的绘制
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>水印的绘制</title> <style> body{ background: rgba(100,145,250,0.3); } #scaleSlider{ width: 100px; margin-left: 90px; vertical-align: 10px; } #canvas{ margin: 10px 20px 0px 20px; border: thin solid #aaa; cursor: crosshair; } #scaleOutput{ position: absolute; width: 60px; height: 30px; margin-left: 10px; vertical-align: center; text-align: center; color: blue; font: 18px arial; text-shadow: 2px 2px 4px rgba(100,140,250,0.8); } </style> </head> <body> <div id="controls"> <output id="scaleOutput">1.0</output> <input id="scaleSlider" type="range" min="1" max="3" step="0.01" value="1.0" /> </div> <canvas id="canvas" width="800" height="520"></canvas> </body> <script> var canvas = document.getElementById('canvas'); var context = canvas.getContext('2d'); var image = new Image(); var scalesSlider = document.getElementById('scaleSlider'); var scaleOutput = document.getElementById('scaleOutput'); var scale = 1.0; var minimum = 1; var maximum = 3; //初始化 context.fillStyle = 'cornflowerblue'; context.strokeStyle = 'yellow'; context.shadowColor = 'rgba(50,50,50,1.0)'; context.shadowOffsetX = 5; context.shadowOffsetY = 5; context.shadowBlur = 10; scaleOutput.style.fontSize = '0.7em'; image.src='img/waterfall.jpg'; image.onload = function(){ context.drawImage(image,0,0,canvas.width,canvas.height); drawWatermark(); drawScaleText(scale); } //事件控制器 scalesSlider.onchange = function(e){ scale = e.target.value; if(scale<minimum) scale = minimum; if(scale>maximum) scale = maximum; drawScaled(); drawScaleText(scale); } //先将之前放大的的图像还原 function drawScaled(){ var w = canvas.width; var h = canvas.height; var sw = w*scale; var sh = h*scale; context.clearRect(0,0,w,h); //将放大的还原 context.drawImage(image,0,0,w,h); drawWatermark(); //将新的放大的 context.drawImage(canvas,0,0,w,h,-sw/2+w/2,-sh/2+h/2,sw,sh); } //绘制缩放倍数的文字 function drawScaleText(value){ var text = parseFloat(value).toFixed(2); var percent = parseFloat(value-minimum)/parseFloat(maximum-minimum); scaleOutput.innerText = text; percent = percent<0.35? 0.35:percent; scaleOutput.style.fontSize = percent*maximum/1.5 +'em'; } //绘制水印 function drawWatermark(){ var lineOne = 'Copyright'; var lineTwo = 'Acme Inc'; var textMetrics;//文字矩阵 var fontSize = 128; context.save(); context.font = fontSize +'px Arial'; context.globalAlpha = 0.6; //改变原点 context.translate(canvas.width/2,canvas.height/2-fontSize/2); textMetrics = context.measureText(lineOne).width; context.fillText(lineOne,-textMetrics/2,0); context.strokeText(lineOne,-textMetrics/2,0); textMetrics = context.measureText(lineTwo).width; context.fillText(lineTwo,-textMetrics/2,fontSize); context.strokeText(lineTwo,-textMetrics/2,fontSize); context.restore(); } </script></html>
0 0
- 4.3_水印的绘制
- 绘制水印
- 绘制水印
- 水印绘制文字
- Xcode绘制图片水印
- 2.3_矩形的绘制
- 2.11_多边形的绘制
- IOS绘制图片水印以及文字水印
- 一款好用的去水印工具_破解版
- 2.8.2_网格的绘制
- 2.8.3_坐标轴的绘制
- 2.8.5_虚线的绘制
- Python学习05_图像的绘制
- [Cocoa]_[初级]_[自定义的界面上绘制图片]
- GMT5.1.2_基础_世界底图的绘制
- [Cocoa]_[初级]_[如何绘制带颜色的文本]
- iOS学习笔记-060.图形的基本绘制、图片水印、图片裁剪
- java_图片_文字_加水印
- tcp和upd的区别?为啥要用udp
- 《UNIX环境高级编程》第9章 进程关系
- 3.dns
- 文章标题 Android 自定义控件---- View1
- 没知识真可怕——应用密码学的笑话之MD5+Salt不安全
- 4.3_水印的绘制
- 关于DStream的输出(foreachRDD)操作
- class-aware detector and class-agnostic detector
- 机器学习(周志华)_第八章 集成学习
- MySQL详解--锁
- 自定义View基础
- 算法导论读书笔记(2)算法基础
- Java内存溢出详解及解决方案
- 乱码