转载请注明原地址;       
                                                                    <!--水印设置,生成图片-->
var img = new Image();
img.crossOrigin="anonymous";
img.src = "../imgs2/1.jpg";
alert("图一已经加载") <!--图片加载完成后在绘制-->
img.οnlοad=function(){ <!--准备canvas环境-->
var canvas=document.getElementById("myCanvas");
var ctx=canvas.getContext("2d");
canvas.width=1063;
canvas.height=638;
// 绘制图片
ctx.drawImage(img,0,0);
// 字体及颜色
ctx.font="30px microsoft yahei";
ctx.fillStyle = "#FF0000(255,255,255,0.8)";
//文字位置
ctx.fillText("(我是数字测试)",220,370);
ctx.fillText("12345678978",250,530);
                                                                                        <!--多个图pain合成-->
<!--html部分-->

 <div class="contentimg" id="contentimg">
<img src="../imgs2/机贴1.jpg" class="imgBox" border="0" style="display:none;width:100%;height:100%;" />
<img src="../imgs2/clipboard.png" class="imgCode" border="0" style="display:none;width:5.5rem;height:5.5rem" />
<!--<canvas id="myCanvas" style="width: 100%;height: 90%;">Your browser does not support the HTML5 canvas tag.</canvas>-->
<div id="myCanvas" style="width: 100%;height: 90%;"></div>
</div> <!--jquery--> $(function() {
//生成画布
hecheng();
function hecheng(){
draw(function(){
document.getElementById('myCanvas').innerHTML='<img src="'+base64[0]+'">';
})
}
var base64=[];
function draw(fn) {
var imgArr = ["../imgs2/机贴1.jpg","../imgs2/clipboard.png"];
var c = document.createElement('canvas'),
ctx = c.getContext('2d'),
len = imgArr.length;
c.width = $(".contentimg").width();
c.height = $(".contentimg").height();
console.log(c.width,c.height);
ctx.rect(0,0,c.width,c.height);
ctx.fillStyle='#ccc';
ctx.fill();
function drawing(n) {
if (n<len) {
var img = new Image;
img.src = imgArr[n];
img.onload = function() {
if (n==1) {
var codeW = $(".imgCode").width(), codeH = $(".imgCode").height();
ctx.drawImage(img,94,125,codeW,codeH);
drawing(n+1);
} else {
ctx.drawImage(img,0,0,c.width,c.height);
drawing(n+1);
}
}
} else {
base64.push(c.toDataURL("image/jpeg",0.8));
fn();
}
}
drawing(0);
}
})

使用Html5对图片加水印及多图合成的更多相关文章

  1. c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)

    c#封装DBHelper类   public enum EffentNextType { /// <summary> /// 对其他语句无任何影响 /// </summary> ...

  2. 火车头dede采集接口,图片加水印,远程图片本地化,远程无后缀的无图片本地化

    <?php /* [LocoySpider] (C)2005-2010 Lewell Inc. 火车采集器 DedeCMS 5.7 UTF8 文章发布接口 Update content: 图片加 ...

  3. thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印

    今天分享一下thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印.博主是新手,在这里卡住了很久(>_<) thinkphp 3.2.3整合ueditor 1.4 下载 ...

  4. PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转

    [强烈推荐]下载地址(github.com/masterexploder/PHPThumb). 注意这个类库有一个重名的叫phpThumb,只是大小写的差别,所以查找文档的时候千万注意. 在网站建设过 ...

  5. php 分享两种给图片加水印的方法

    本文章向码农们介绍 php 给图片加水印的两种方法,感兴趣的码农可以参考一下本文章的源代码. 方法一:PHP最简单的加水印方法 <?php // http://www.manongjc.com ...

  6. Java图片处理(二)图片加水印

    图片加水印,是通过图片重叠绘制实现的.实现代码如下: public static void press(String pressImg, String pressText, String target ...

  7. PHP给图片加水印

    <?php /** *图片加水印 *@param $srcImg 原图 *@param $waterImg 水印图片 *@param $savepath 保存路径 *@param $savena ...

  8. 如何用node.js批量给图片加水印

    上一篇我们讲了如何用node.js给图片加水印,但是只是给某一张图片加,并没有涉及到批量处理.这一篇,我们学习如果批量进行图片加水印处理. 一.准备工作: 首先,你要阅读完这篇文章:http://ww ...

  9. 使用 ImageEnView 给图片加水印,及建缩略图

    摘要: 使用 ImageEnView 给图片加水印,及建缩略图 {Power by hzqghost@21cn.com}unit CutWater; interface uses  Math,imag ...

随机推荐

  1. (第二篇)shell的简单了解

    Shell (类似开发工具) Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程 ...

  2. 【JAVA基础】04 Java语言基础:方法

    1. 方法概述和格式说明 为什么要有方法 提高代码的复用性 什么是方法 完成特定功能的代码块. 方法的格式 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {     方法 ...

  3. Babel 在浏览器环境使用方法

    Babel 也可以用于浏览器环境.但是,从 Babel 6.0 开始,不再直接提供浏览器版本,而是要用构建工具构建出来.如果你没有或不想使用构建工具 1.通过安装5.x版本的babel-core模块获 ...

  4. python自动化测试开发利器ulipad最佳实践(可写python测试代码也可编写selenium、Appium等)...

    介绍 UliPad是一个国人开发的python轻量级编辑器,导向和灵活的编程器.它如类浏览器,代码自动完成许多功能,如:HTML查看器,目录浏览器,向导等. 下载与安装 下载地址:https://py ...

  5. flask学习笔记(二)

    一.视图函数的传参方式 修改前: 目标: 传参方式改成 途径: 通过request获取参数 注意:args并不是地点类型,而是dict的一个子类,如图: immutable意思是不可变 不可变的字典转 ...

  6. Geomesa-Hbase集群部署

    本文记录一下Geomesa-Hbase集群部署,在单机部署的基础上 https://www.cnblogs.com/help-silence/p/12817447.html 1.搭建集群 https: ...

  7. The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 B so easy

    题目链接:https://nanti.jisuanke.com/t/41384 这题暴力能过,我用的是并查集的思想,这个题的数据是为暴力设置的,所以暴力挺快的,但是当他转移的点多了之后,我觉得还是我这 ...

  8. 题目分享T

    题意:蛐蛐国里现在共有n只蚯蚓(n为正整数).每只蚯蚓拥有长度,我们设第i只蚯蚓的长度为a_i(i=1,2,...,n),并保证所有的长度都是非负整数(即:可 能存在长度为0的蚯蚓).每一秒,神刀手会 ...

  9. Python基础03 id

    id id(x)对应变量x所引用对象的内存地址.可以把id(x)看成变量x的身份标识. is 有时在编程中需要与变量的身份标识打交道,但不是通过 id 函数,而是 is 操作符. The operat ...

  10. 【Java新特性】Lambda表达式典型案例,你想要的的都在这儿了!!

    写在前面 不得不说,有些小伙伴的学习热情真高,学完了Lambda表达式的语法,想来几个典型案例再强化下.于是问冰河能否给几个Lambda表达式的典型使用示例.于是乎,便有了这篇文章. 案例一 需求 调 ...