npm 包 lnlr-cropper 使用教程

阅读时长 5 分钟读完

在前端开发中,裁剪图片是一个非常常见的需求,无论是上传头像、安利码或者微信分享等场景,都需要使用到图片裁剪。lndr-cropper 是一款基于 canvas 的图片剪裁库,可以实现简单的图片裁剪和编辑。

安装

使用 npm 包管理器进行安装

使用

假设我们需要为一个头像上传组件添加裁剪功能。

首先,我们需要准备工作:

  1. import lnlrCropper from "lnlr-cropper";
  2. 确认事件流,在组件的模版中,我们需要添加一个 input[type=file] 的元素,用户选择需要上传的图片,触发 onChange 事件
  3. 创建一个裁剪图片的容器,此时,容器大小为 0
  4. 实例化 lnlrCropper,并初始化容器的大小,调用 init 函数
  5. 使用 lnlrCropper 提供的 setImg 函数,为容器设置图片

代码如下所示

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

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

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

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

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

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

配置项

lnlrCropper 可以通过 init 函数中的配置项进行设置

同时,lnlrCropper 还提供了许多直接操作画布的 API,如裁剪、还原等操作。

性能优化

在处理大图片时,由于 JS 的运算能力有限,直接在 canvas 中对图片进行处理,会导致浏览器崩溃或卡顿,给用户带来非常不好的体验。为了解决这个问题,我们可以使用图片压缩的方式。

下面是一段简单的图片压缩代码

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

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

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

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

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

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

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

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

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

结语

使用 lnlrCropper 可以非常容易地实现裁剪图片的功能。合理运用图片压缩,可以大大提高图片裁剪的体验和性能。

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

纠错
反馈