javascript-如何在HTML5 Canvas中使用动态旋转值绘制水印?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-如何在HTML5 Canvas中使用动态旋转值绘制水印?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2599字,纯文字阅读大概需要4分钟。
内容图文
![javascript-如何在HTML5 Canvas中使用动态旋转值绘制水印?](/upload/InfoBanner/zyjiaocheng/677/7ae7a789c3d14328a712dabf7662d4df.jpg)
我正在使用HTML5,并且尝试使用文本在图像上绘制水印.
我有以下代码:
<html>
<body onl oad="addWaterMarkOnPage();">
<div id="pageContainer" style="width: 612px; height: 792px;">
<canvas id="page1" width="612" height="792"></canvas> //image loading canvas
</canvas>
</div>
</body>
<html>
的JavaScript
function addWaterMarkOnPage()
{
var watermarkCanvas=document.createElement("canvas");
watermarkCanvas.id="watermark";
var parentDivElement=document.getElementById("pageContainer")
var parentCanvasElment=document.getElementById("page");
watermarkCanvas.width=parentCanvasElment.width;
watermarkCanvas.height=parentCanvasElment.height;
watermarkCanvas.setAttribute("style","position:absolute")
if(parentDivElement.firstChild)
parentDivElement.insertBefore(watermarkCanvas, parentDivElement.firstChild);
else
parentDivElement.appendChild(watermarkCanvas);
var watermarkContext=watermarkCanvas.getContext('2d');
watermarkContext.globalAlpha=0.5;
watermarkContext.beginPath();
var metrics = watermarkContext.measureText("WaterMark Demo");
var width = metrics.width;
watermarkContext.rotate( (Math.PI / 180) * -45); //rotate 25 degrees
watermarkContext.font = "72px comic Sans MS" ;
watermarkContext.fillStyle = "Red";
watermarkContext.fillText("WaterMark Demo",-width*2,72);
watermarkContext.fill();
}
我想在页面的对角线绘制文本(“ WaterMark演示”).我尝试了多种方法来做,但没有成功.
解决方法:
这是一些改进的代码:
var container=document.getElementById("pageContainer")
var origCanvas=document.getElementById("page1");
var wmCanvas=document.createElement("canvas");
wmCanvas.id="watermark";
wmCanvas.width=origCanvas.width;
wmCanvas.height=origCanvas.height;
wmCanvas.setAttribute("style","position:absolute;border:1px solid black")
if(container.firstChild)
container.insertBefore(wmCanvas, container.firstChild);
else
container.appendChild(wmCanvas);
var wmContext=wmCanvas.getContext('2d');
wmContext.globalAlpha=0.5;
// setup text for filling
wmContext.font = "72px Comic Sans MS" ;
wmContext.fillStyle = "red";
// get the metrics with font settings
var metrics = wmContext.measureText("WaterMark Demo");
var width = metrics.width;
// height is font size
var height = 72;
// change the origin coordinate to the middle of the context
wmContext.translate(origCanvas.width/2, origCanvas.height/2);
// rotate the context (so it's rotated around its center)
wmContext.rotate(-Math.atan(origCanvas.height/origCanvas.width));
// as the origin is now at the center, just need to center the text
wmContext.fillText("WaterMark Demo",-width/2,height/2);
工作于:http://jsfiddle.net/EAXc9/7/
深受启发:https://stackoverflow.com/a/5400970/2249185
内容总结
以上是互联网集市为您收集整理的javascript-如何在HTML5 Canvas中使用动态旋转值绘制水印?全部内容,希望文章能够帮你解决javascript-如何在HTML5 Canvas中使用动态旋转值绘制水印?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。