Fabric.js是一个功能强大和简单Javascript HTML5的canvas库。Fabric提供了很多可以互动的Canvas元素,还在canvas上提供了SVG的语法分析器。

你可以轻松的使用Fabric.js做到下面的操作:

  • 在canvas上创建和填充填充简单的几何图形。
  • 放上一张已经准备好的照片。
  • 作一些有复杂路径组成的图形。
  • 给任何图形填充渐变色。
  • 编辑canvas上文字的大小,对齐方式,字体和其他属性。
  • 对一张图片进行效果叠加,例如变成黑白色,变成偏红色。
  • 进行动画编辑和互动操作。
  • 在canvas上进行移动,缩放你选择的图形。
  • 进行群组编辑。
  • 自由绘画,就像你在纸上绘画一样。
  • 生产JSON或SVG数据,并在你需要的时候进行恢复。

如果你觉的这篇文章满足不了您的需求或者你想了解更多关于Fabric.js的信息,你可以上它的官方网站或者访问Github网址。

Fabric.js的官网地址:http://fabricjs.com

GitHub地址:https://github.com/kangax/fabric.js/

其实Fabric.js的开发环境没有什么特殊要求,它只是一个纯粹的JavaScript库。我们只要下载Fabric.js并像正常引入Javascript就可以开始开发了。

虽然不难,但是我还是给出一个简单的步骤:

  1. 下载Fabric.js:您可以去Github上下载,也可以在官网下载(http://fabricjs.com/build/).
  2. 这里推荐在官网进行下载,进入网址后,点击“select all”选择全部,然后点击“Dev build” 进行下载。
  3. 把下载好的fabric.js复制到你的开发目录。
  4. 在HTML里用<script>标签引入fabric.js库。

我们可以通过画一个简单的正方形来感受一下fabric.js的魅力。

<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="../fabric.js"></script>
</head>
<body>
<canvas id="c" width="800" height="800"></canvas>
<script type="text/javascript">
var canvas =new fabric.Canvas('c'); //利用fabric找到我们的画布
var rect = new fabric.Rect({ //创建我们的正方形
left:100,
top:100,
fill:'red',
width:30,
height:30
});
canvas.add(rect);//把我们创建好的正方形加到画布上
</script>
</body>
</html>

(转)第01节:初识简单而且强大的Fabric.js库的更多相关文章

  1. 简单、强大的swig.js

    Swig.js A simple, powerful, and extendable JavaScript Template Engine. 简单概括:JS模板引擎. Why to use 根据路劲渲 ...

  2. 让AI简单且强大:深度学习引擎OneFlow技术实践

    本文内容节选自由msup主办的第七届TOP100summit,北京一流科技有限公司首席科学家袁进辉(老师木)分享的<让AI简单且强大:深度学习引擎OneFlow背后的技术实践>实录. 北京 ...

  3. day7学python 初识简单模板

    初识简单模板 模块与包 1.模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现功能),本质是.py结尾的文件 但导入的模块名,无.py 2.包:从逻辑上组织模块,本质就是目录(含有_i ...

  4. Java高级架构师(一)第01节:整体课程概览

    本课程专注于构建:高可扩展性.高性能.大数据量.高并发.分布式的系统架构. 从零开始.全面系统.成体系的软件架构课程,循序渐进的讲述构建上述系统架构所需要的各种技术知识和技能. 适应人群: 1:有一定 ...

  5. 数据库01 /Mysql初识、基本指令、数据库密码相关、创建用户及授权

    数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 目录 数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 1. 数据库概述 2. 数据库管理系统/DBMS ...

  6. 006 01 Android 零基础入门 01 Java基础语法 01 Java初识 06 使用Eclipse开发Java程序

    006 01 Android 零基础入门 01 Java基础语法 01 Java初识 06 使用Eclipse开发Java程序 Eclipse下创建程序 创建程序分为以下几个步骤: 1.首先是创建一个 ...

  7. 003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程

    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ...

  8. 002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介

    002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介 学习Java的基础语法 Java是一门编程语言,学习的逻辑其实和现实世界的语言是一样的,需要了 ...

  9. (译文)12个简单(但强大)的JavaScript技巧(二)

    原文链接: 12 Simple (Yet Powerful) JavaScript Tips 其他链接: (译文)12个简单(但强大)的JavaScript技巧(一) 强大的立即调用函数表达式 (什么 ...

随机推荐

  1. gdb常用功能

    1,调试core dump 文件    ulimit -c 1024:设置coredump文件大小为1024,否则默认不会生成coredump文件    gdb -c core:gdb调试该cored ...

  2. 将excel表格或csv转换为Shapefile文件

    读取csv转为shp 构造读取csv函数 def read_csv(fp): ret = [] with open(fp, 'rb') as f: for line in f: ret.append( ...

  3. 6-Python操作MySQL-增(insert)-删(delete)-改(update)-查(select)

    增删改 from pymysql import * def main(): # 创建Connection连接 conn = connect(host='localhost',port=3306,dat ...

  4. rtsp+rtmp多路流媒体播放

    一.前言 之前博主有写过 一篇博文,讲的是使用videojs在谷歌浏览器网页上播放rtmp流媒体,具体可参考我之前的博客:https://www.cnblogs.com/FHC1994/p/99814 ...

  5. MySQL 10章_视图、事务

    一. 视图: 视图(view)是保存了查询语句的一种数据库对象,其数据来源是查询语句对应的数据表,他的结果与数据表查询的结果一样也是一张虚拟的数据表 . 为什么需要视图: ) 不同的用户关心的数据可能 ...

  6. iOS开发系列-常见离线存储方式

    概述 在很多社交App手机在手机没有网络时,重新启动应用,依然能否展示上次访问的数据,提高用户体验,这个就是离线数据存储的运用场景.在iOS开发中常见的离线存储技术有Plist存储.个人偏好存储.解归 ...

  7. C 语言源代码说明

    void bdmain(void){/* 禁止 Cache 和 MMU */ cache_disable(); mmu_disable(); /* 端口初始化 */ port_init(); /* 中 ...

  8. thinkphp 规则路由

    规则路由是一种比较容易理解的路由定义方式,采用ThinkPHP设计的规则表达式来定义. 规则表达式 规则表达式通常包含静态地址和动态地址,或者两种地址的结合,例如下面都属于有效的规则表达式: 'my' ...

  9. csps模拟86异或,取石子,优化题解

    题面:https://www.cnblogs.com/Juve/articles/11736440.html 异或: 考试时只想出了暴力 我们可以对于二进制下每一位w,求出[l,r]中有几个数在这一位 ...

  10. SQLite加密 wxSqlite3

    一直在网上搜wxSqlite3的文档,但是总找不到能真正解决问题的,就是一个简单的编译wxSqlite3自带的示例也出了老多问题,后来却发现,其实wxSqlite3的readme中已经有了详细的方法, ...