Zwibbler—前端Canvas绘图工具使用记录
本人第一次发博客,用意在于记录自己在开发过程中用到的实用工具并分享出来,写的可能不好,请大家多多包涵!!!
基于Canvas的一个前端绘画工具。具体功能本人暂未深究。主要在项目中的应用场景如下:
1.将Canvas画板植入前端
2.用户可通过左侧的画笔选项工具选择画笔在画板上绘图
3.绘图完成后点击页面中的提交按钮可将绘制后的画板以jpg格式提交到服务器中
废话不多说,在此简述一下如何实现上述几点:
引入Zwibbler的JS文件,我个人引入的是官网的zwibbler-demo.js
首先,将Canvas画板植入前端
1.页面写一个div
<div id="zwibbler" style="margin-left:auto;margin-right:auto;border:2px solid red;width:1000px;height:800px;"></div>
2.引入zwibbler-demo.js到项目中,并在script脚本中初始化Zwibbler
<script src="~/css/Zwibbler/zwibbler.js"></script>
<script type="text/javascript">
var zwibbler = Zwibbler.create("#zwibbler", {
defaultBrushWidth: 5,//默认画笔宽度(以像素为单位)
showCopyPaste: false,//确定是否在内置工具栏上显示复制/粘贴按钮
showArrowTool: false,//确定是否在内置工具栏中显示箭头工具
showTextTool: false,//确定是否在内置工具栏中显示文本工具
showShapeBrushTool: true,//确定是否在内置工具栏中显示魔术形状画笔工具
showLineTool: false,//确定是否在内置工具栏中显示线条工具
});
</script>
内置工具栏:初始化Zwibbler画板时会在左侧有一列工具栏,如图:
至此,Zwibbler画板植入完成
其次,用户可通过左侧的画笔选项工具选择画笔在画板上绘图
大家可自行测试工具绘制样式。(在触摸设备也可使用);
然后,绘图完成后点击页面中的提交按钮可将绘制后的画板以jpg格式提交到服务器中
这个功能的话是我在官方文档中根据文档实现的。
1.页面提交按钮:
<input id="tijiao" type="button" onclick="tiJiao()" style="background-image: url(../../css/Zwibbler/Submit.png); width: 204px; height: 85px; position: absolute; left: 1316px; top: 850px; border: 0px;" />
onclick事件代码:
<script>
function tiJiao()
{
var dataUrl = zwibbler.save("png");
var bbt = window.prompt("请输入您的姓名", "");
if (bbt) {
$.ajax({
type: 'post',
url: '/Demo/UploadImg',
async: true,
data: { 'dataURL': dataUrl, 'imgName': bbt },
dataType: 'json',
success: function (res) {
alert("提交完成~");
}
})
}
else if (bbt === "") {
alert("请输入姓名");
}
else {
alert("您取消了提交~");
}
}
</script>
@*因为客户需求,我在此处加入了prompt弹框,用户绘画完成点击提交后会触发弹框,如果不输入姓名将不会执行ajax方法把图片提交至服务器。*@
zwibbler.save()为画板导出为图片的方法,我这里选择导出为png格式的图片。程序使用MVC框架,所以异步提交到服务器的动作方法,上传至服务器的动作方法在此就不贴出来了,网上一搜一大堆很详细
Zwibbler这个绘图工具特别强大,大家可以在官网上边的开发人员文档查看到此工具的更多属性。我这里也贴一些我自己使用的其他属性的代码以及效果图供大家参考。有兴趣的同学可以到开发文档查看。传送门
<input type="button" onclick="onSave()" style="background-image:url(../../css/Zwibbler/timeSave.png);width:204px;height:85px;position:absolute;left:420px;top:850px;border:0px;"/>
<input id="loadButton" type="button" onclick="onLoad()" disabled="disabled" style="background-image: url(../../css/Zwibbler/readSave.png); width: 204px; height: 85px; position: absolute; left: 644px; top: 850px; border: 0px;"/>
<input id="qingkong" type="button" onclick="qingKong()" style="background-image: url(../../css/Zwibbler/restart.png); width: 204px; height: 85px; position: absolute; left: 868px; top: 850px; border: 0px;"/>
<input id="xiangpi" type="button" style="background-image: url(../../css/Zwibbler/erase.png); width: 204px; height: 85px; position: absolute; left: 1092px; top: 850px; border: 0px;"/>
<script>
var saved = null;
function onSave()
{
saved = zwibbler.save("zwibbler3");
$("#loadButton").removeAttr("disabled");
}
function onLoad()
{
zwibbler.load("zwibbler3", saved);
}
function qingKong()
{
zwibbler.newDocument();
}
$("#xiangpi").click(function () {
zwibbler.useBrushTool("erase", 20);
});
</script>
Zwibbler—前端Canvas绘图工具使用记录的更多相关文章
- canvas绘图工具
关于canvas绘图,在html页面上太方便了.当然刚开始还是入了不少坑,用了比如jcanvascript等三方插件.真实效果反而不理想,后来就没用插件. 下面是实现效果,可以在线绘制工地图然后传给后 ...
- 前端自动化构建工具gulp记录
一.安装 1)安装nodejs 通过nodejs的npm安装gulp,插件也可以通过npm安装.windows系统是个.msi工具,只要一直下一步即可,软件会自动在写入环境变量中,这样就能在cmd命令 ...
- HTML5 canvas 在线画笔绘图工具(二)
Canvas+Javascript 带图标的工具条制作 TToolbar 工具条是由一个TToolbar对象和两个按钮对象(TImageButton.TColorButton)组成,因为之前我大部分时 ...
- HTML5 canvas 在线画笔绘图工具(一)
HTML5 canvas 在线画笔绘图工具(一) 功能介绍 这是我用Javascript写的第一个程序,在写的过程中走了很多弯路,所以写完之后想分享出来,给与我一样的初学者做为学习的参考,同时在编写这 ...
- HTML5 canvas 在线画笔绘图工具(三)
组装画板(TDrawBuilder) 在这一小节中我们要把工具条和画板组装起来,让他们可以协同进行工作. 画板通过一个命名为TDrawBuilder来进行组装.在详细讲解TDrawBuilder对象之 ...
- H5新特性——--第三方绘图工具库 echarts(canvas)---SVG绘图
今天学习的内容 3.1:h5新特性---第三方绘图工具库 echarts(canvas) 百度 echarts;d3;two.js;.... 3.2:h5新特性---SVG绘图 3.2:h5新特性-- ...
- 基于HTML5 Canvas和jQuery 的绘图工具的实现
简单介绍 HTML5 提供了强大的Canvas元素.使用Canvas并结合Javascript 能够实现一些很强大的功能.本文就介绍一下基于HTML5 Canvas 的绘图工具的实现.废话少说,先看成 ...
- 一起来画画!8款最佳HTML5绘图工具
HTML5无疑是当前最受宠的一项技术,今天推荐8款HTML5绘图工具,同样惊艳你的眼球!这些绘图工具大多数是用HTML5画布(Canvas)实现的,部分辅以Javascript.对每一个web设计者来 ...
- Web前端错题模糊题记录
title: Web前端错题模糊题记录 toc: true date: 2018-09-20 10:04:36 categories: Web tags: HTML CSS JavaScript HT ...
随机推荐
- shell脚本部署redis以及redis主从复制和redis-cluster集群
# 关于脚本: # 使用root用户执行此脚本,提前关闭selinux: # 执行脚本之前,hostsIP内的IP修改成自己的机器IP: # hostsIp内的IP数量如果有增加或者减少,for循环的 ...
- JVM基础学习(一):JVM内存模型
在Java进阶知识的学习中,JVM都是避不过去的一关,我个人对于JVM的理解其实就是相当于在操作系统的外层再加了一层中间层,从来屏蔽了具体硬件之间的不同实现,使得Java实现了最重要的特性:一次编译, ...
- 攻防世界Web_ics_05
题目: 题目描述:其他破坏者会利用工控云管理系统设备维护中心的后门入侵系统 题目场景: 1.进入云平台设备中心界面,查看以下源码发现?page= ,(点下云平台设备维护中心url里也能出?page ...
- kafka在linux下安装
简介 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据. 相关术语(参考百度百科) Broker Kafka集群包含一个或多个服务器,这种服务器被称为brok ...
- 记一次腾讯云服务器centos linux可视化桌面安装并进行远程桌面登录及其安装中文包
开始前请确保你有能上网的主机两部(一个是CentOS7系统,一个是Windows10系统)1.用SSH root用户登录Centos主机:2.检查你的centos是否装了epel库 执行命令:rpm ...
- RFC3918组播转发时延测试——网络测试仪实操
一.简介 1.RFC3918简介 历史 · 在1999年3月成为正式标准 功能 · 评测网络互连设备或网络系统的性能 · 网络设备: 交换机,路由器- 内容 · 定义了一整套测试方法,为不同厂家的设备 ...
- Clickhouse 分布式表&本地表 &ClickHouse实现时序数据管理和挖掘
一.CK 分布式表和本地表 (1)CK是一个纯列式存储的数据库,一个列就是硬盘上的一个或多个文件(多个分区有多个文件),关于列式存储这里就不展开了,总之列存对于分析来讲好处更大,因为每个列单独存储,所 ...
- 可视化BI工具选型,应该注意什么
伴随着大数据时代的到来,企业对数据的需求从"IT主导的报表模式"转向"业务主导的自助分析模式",可视化BI工具也随之应运而生.面对如此众多的可视化BI工具,我 ...
- yaml文件学习笔记
01 介绍 YAML 是 "YAML Ain't Markup Language" 的递归缩写.在开发的这种语言时,YAML 的意思其实是:"Yet Another Ma ...
- [GYCTF2020]Ezsqli 无列名注入
手工注入了几下,是数字注入,过滤了 or , union 输入1||1=1 回显Nu1L 再输入 1&&(ascii(substr(database(),1,1))>32)# ...