123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>手写板绘制</title>
- <style>
- .canvas {
- border: 1px solid rgb(170, 170, 170);
- cursor: pointer;
- }
- .mgTop {
- margin-top: 30px;
- text-align: center;
- }
- </style>
- <script src="../js/fabric.min.js"></script>
- </head>
- <body style="padding-left: 10px;text-align:center;">
- <h1>手写板测试</h1>
- <div class="mgTop">
- <canvas width="1880" height="1329" id="freeCanvas" class="canvas"></canvas>
- </div>
- <button style="display: none;" onclick="toData()"> 转换 </button>
- <button onclick="clearCanvas()"> 清空画板 </button>
- <script>
- var canvas = new fabric.Canvas("freeCanvas", {
- isDrawingMode: true,
- selection: false,
- width: 1880,
- height: 1329
- });
- window.open("http://cmd.com/setpadcanvas?" + canvas.width + "&" + canvas.height);
- function toData() {
- console.log(canvas.toJSON());
- console.log(drawingPath.path);
- }
- var invalidCoord = -1000000;
- var prevX = invalidCoord, prevY = invalidCoord;
- var drawingIndex = 0;
- var drawingPath = undefined;
- var drawColor = '#E34F51',
- strokeWidth = 2,
- tempCount = 0;
-
- function writingPad(type, x, y) {
-
- if (type) {
- switch (type.toLowerCase()) {
- case 'm':
-
- drawingPath = new fabric.Path('M ' + x + ' ' + y + ' ', {
- stroke: drawColor,
- fill: "rgba(255, 255, 255, 0)",
- strokeWidth: strokeWidth
- });
- canvas.add(drawingPath);
- break;
- case 'q':
-
- if (drawingPath) {
- if (prevX == invalidCoord || prevY == invalidCoord) {
- prevX = x, prevY = y;
- } else {
- ++tempCount;
- if (tempCount % 2) {
- drawingPath.path.push(["Q", prevX, prevY, x, y]);
- var _path = drawingPath.path;
- canvas.remove(_path);
-
- drawingPath = new fabric.Path(_path, {
- stroke: drawColor,
- fill: "rgba(255, 255, 255, 0)",
- strokeWidth: strokeWidth
- });
- canvas.add(drawingPath);
- prevX = invalidCoord, prevY = invalidCoord;
-
- }
- }
- } else {
- alert('绘制失败:画板异常,请重新连接画板重试!');
- }
- break;
- case 'l':
-
- drawingPath.path.push(["L", x, y]);
-
- drawingPath = undefined;
- prevX = invalidCoord, prevY = invalidCoord;
- tempCount = 0;
- break;
- default:
- break;
- }
- }
- }
- function clearCanvas() {
- canvas.clear();
- }
- </script>
- </body>
- </html>
|