前端前端
fabric
算法
jsBlock
styleBlock
svgBlock
工具其他
Vue、React相关
webgl
GitHub
fabric
算法
jsBlock
styleBlock
svgBlock
工具其他
Vue、React相关
webgl
GitHub
  • 元素操作

    • 元素分组
    • 元素定位
    • 元素层级
    • 元素禁止事件
    • 元素选中样式
  • 变换

    • 变换
  • 图片

    • 图片
    • 背景图
  • 基础图形

    • 三角形
    • 圆形
    • 多边形
    • 折线
    • 椭圆
    • 直线
    • 矩形
    • 路径
  • 序列化和反序列化

    • 反序列化
    • 输出JSON
    • 输出png
    • 输出svg
  • 文本

    • 可编辑文本
    • 多行文本
    • 文本
    • 文本省略
    • 文本边框
  • 源码

    • fabric.Canvas
    • fabric.Circle
    • fabric类的继承体系
  • 画布操作

    • 画布拖动和缩放
    • 画布框选样式
  • 示例

    • fabric-echarts-demo
    • 拓扑图一
    • 拓扑图二

图片

创建

使用 fabric.Image.fromURL(imgpath, function) 方法创建图片

第一个参数是图片路径

第二个回调

show code

fabric.Image.fromURL(catImg, (img) => {
  img.set({ left: 30, top: 20, scaleX: 0.2, scaleY: 0.2 })
  canvas.add(img)
})

多张图片重叠问题

图片置于最底层 img.sendToBack()

show code

const draw = (canvas) => {
  fabric.Image.fromURL(catImg, (img) => {
    img.set({ left: 30, top: 20 })
    canvas.add(img)
  })

  fabric.Image.fromURL(yaImg, (img) => {
    canvas.add(img)
    img.sendToBack() // 图片置于最底层
  })
}

添加滤镜

show code

fabric.Image.fromURL(catImg, (img) => {
  // 添加滤镜
  img.filters.push(
    new fabric.Image.filters.Grayscale(),
    new fabric.Image.filters.Sepia(), // 色偏
    new fabric.Image.filters.Brightness({ brightness: 0.1 }) // 亮度
  )
  // 图片加载完成之后,应用滤镜效果
  img.applyFilters()
  canvas.add(img)
})

fabric 内置滤镜

  • BaseFilter 基本过滤器
  • Blur 模糊
  • Brightness 亮度
  • ColorMatrix 颜色矩阵
  • Contrast 对比
  • Convolute 卷积
  • Gamma 伽玛
  • Grayscale 灰度
  • HueRotation 色调旋转
  • Invert 倒置
  • Noise 噪音
  • Pixelate 像素化
  • RemoveColor 移除颜色
  • Resize 调整大小
  • Saturation 饱和
  • Sepia 色偏
Edit this page
最近更新:: 2025/4/24 10:47
Contributors: wu.hui
Next
背景图