npm 包 @javiercrowsoft/graffiti 使用教程

阅读时长 10 分钟读完

@javiercrowsoft/graffiti 是一款基于 React 的 JavaScript 库,它提供了一种简单直接的方式来在图片上进行涂鸦 annotation,支持多种注释样式和自定义注释工具。

安装

使用 npm 安装:

使用 yarn 安装:

使用方式

首先,你需要一个存在的图片。 @javiercrowsoft/graffiti 支持在任意大小和比例的画布上绘制注释,所以先要确定图片的大小和比例。

-- -------------------- ---- -------
------ ----- ---- --------
------ -------- ---- ---------------------------

----- -------- - --------------------------------------

----- --- - -- -- -
  -----
    --------- -------------- --
  ------
--

------ ------- ----

这段代码将渲染一个图片,并给它添加了 Graffiti 的注释工具。

默认情况下,Graffiti 会显示一个红色的圆圈,当点击图片时弹出注释工具。但是这看起来并不好看,如果我们要自定义注释工具样式,可以在 tags 属性中传递一个数组。

-- -------------------- ---- -------
------ ----- ---- --------
------ -------- ---- ---------------------------
------ - ----------------- - ---- -----------------

----- -------- - --------------------------------------

----- --- - -- -- -
  ----- ---- - -
    -
      ----- ------------------ --------- ---
      ------ --------
      -------- ---- - ----- -----
      -------- --------- -- ---------------- ------ ---------
    --
  --
  ------ -
    -----
      --------- -------------- ----------- --
    ------
  --
--

------ ------- ----

这段代码将渲染一个带有自定义标签工具的图片。现在,当我们点击标签工具时,它将带有一个 lalebl 并且向控制台输出点击事件。

如何自定义标签工具样式

为了自定义标签工具样式,你需要先了解 Graffiti 内部标签的默认样式,然后通过 CSS 或样式对象覆盖它们。这里有几个常用的样式名:

  • .tags-container:标签容器的父元素,位于图片的顶部
  • .tag-wrapper :标签的包装器,包含标签图标和气泡提示
  • .tag-content :包含标签图标和气泡提示文本的元素

属性名和值和 CSS 相同,只是转成了驼峰式写法,例如:

-- -------------------- ---- -------
------ ----- ---- --------
------ -------- ---- ---------------------------
------ - ----------------- - ---- -----------------

----- -------- - --------------------------------------

----- --- - -- -- -
  ----- ---- - -
    -
      ----- ------------------ --------- ---
      ------ --------
      -------- ---- - ----- -----
      -------- --------- -- ---------------- ------ ---------
    --
  --
  ----- ------ - -
    ----------- -
      ----------- ------
    --
    ----------- -
      --------- -------
      ----------- -------
      ------ --------
      ----------- -------- --- --- ------
      -------- ------
      ------------- ------
      ------------ ------
    -
  --
  ------ -
    -----
      --------- -------------- ----------- --------------- --
    ------
  --
--

------ ------- ----

这段代码将渲染一个自定义样式的带有标签工具的图片。

如何添加注释

要添加注释,我们需要使用 addAnnotation 方法并将其作为回调传递给 Graffiti。

-- -------------------- ---- -------
------ ----- ---- --------
------ -------- ---- ---------------------------
------ - ----------------- - ---- -----------------

----- -------- - --------------------------------------

----- --- - -- -- -
  ----- ---- - -
    -
      ----- ------------------ --------- ---
      ------ --------
      -------- ---- - ----- -----
      -------- ----- - -------- -------- --- -- -- -
        ----- -- - --------------------------------------- ---

        -------------------
          -- --------
          -- --------
          ---
          ------ -------
        ---
      --
    --
  --
  ----- ------ - -
    ----------- -
      ----------- ------
    --
    ----------- -
      --------- -------
      ----------- -------
      ------ --------
      ----------- -------- --- --- ------
      -------- ------
      ------------- ------
      ------------ ------
    -
  --
  ------ -
    -----
      --------- -------------- ----------- --------------- --
    ------
  --
--

------ ------- ----

这段代码将保持我们之前的定制标签,但是当我们点击工具时,它将以绿色绘制一个新的注释。

如何保存注释

Graffiti 提供了一个 toDataURL 方法,该方法将保存标记并将其转换为一张新图像。

-- -------------------- ---- -------
------ ------ - ------ - ---- --------
------ -------- ---- ---------------------------
------ - ----------------- - ---- -----------------

----- -------- - --------------------------------------

----- --- - -- -- -
  ----- -------- - -------------
  ----- ---- - -
    -
      ----- ------------------ --------- ---
      ------ --------
      -------- ---- - ----- -----
      -------- ----- - -------- -------- --- -- -- -
        ----- -- - --------------------------------------- ---

        -------------------
          -- --------
          -- --------
          ---
          ------ -------
        ---
      --
    --
    -
      ----- ------------------ --------- ---
      ------ ------
      -------- ---- - --- -----
      -------- ----- - -------- -------- --- -- -- -
        ----- -- - --------------------------------------- ---

        -------------------
          -- --------
          -- --------
          ---
          ------ -----
        ---
      --
    --
  --
  ----- ------ - -
    ----------- -
      ----------- ------
    --
    ----------- -
      --------- -------
      ----------- -------
      ------ --------
      ----------- -------- --- --- ------
      -------- ------
      ------------- ------
      ------------ ------
    -
  --
  ----- ----------- - -- -- -
    ----- ------ - -----------------------------
    -- --- --- ------ ----- ----
  --
  ----- --------------- - -- -- -
    ------------------------------------
  -

  ------ -
    -----
      --------- -------------- -------------- ----------- --------------- --
      -----
        ------- -------------------------- --------------------
        ------- ------------------------------- --- --------------------
      ------
    ------
  --
--

------ ------- ----

这段代码将保持我们之前的定制标签,除此之外,我们还添加了一个保存注释并清除所有注释的按钮。要保存注释,请点击"保存注释"按钮,将弹出一个新的窗口,其中包含转换为图像的注释。此时,您可以将其下载到本地或将其发送到另一个服务端点进行保存。

总结

在本文中,我们介绍了 @javiercrowsoft/graffiti npm 包的使用。通过本文,你可以了解如何在图片上使用 Graffiti 注释。您可以定制 Graffiti 的样式和使用 Graffiti 的 API 调整和添加注释。最后,我们展示了如何将 Graffiti 注释保存到新图像中,以及如何清除注释。希望这些代码对您有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bc5967216659e2443a2

纠错
反馈