npm 包 ng2-img-cropper 使用教程

阅读时长 9 分钟读完

介绍

ng2-img-cropper 是一个用于 Angular 2+ 项目的图片剪裁器,可以帮助我们方便地在前端进行图片裁剪和缩放操作,支持各种样式配置和事件绑定。

安装和使用

首先我们需要在项目中安装 ng2-img-cropper 包,可以使用 npm 命令进行安装:

然后我们需要在模块中引入并添加 ng2-img-cropper 组件:

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

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

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

在页面中使用 ng2-img-cropper 组件,指定图片路径和裁剪区域宽高:

其中,imageChangedEvent 是图片变化事件,在控制器中定义并处理,比如:

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

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

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

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

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

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

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

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

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

在控制器中定义了 imageChangedEvent(图片变化事件)、croppedImage(剪裁后图片)、fileChangeEvent(文件变化事件)、imageCropped(剪裁事件)、imageLoaded(图片载入事件)、cropperReady(剪裁器 ready 事件)和 loadImageFailed(载入图片失败事件)等方法,其中 imageCropped 方法是最为重要的,它会在剪裁完成后触发,将剪裁后的图片通过 base64 格式返回,我们可以将其上传至服务器或在本地保存使用。

我们也可以通过各种属性配置组件样式和操作行为,例如:

在这里我们设置了:

  • outputType:输出图片格式为 blob。
  • canvasWidth 和 canvasHeight:剪裁器所在画布的宽和高。
  • rotate90:允许在剪裁时旋转 90 度。
  • autoCrop:自动进行剪裁操作。
  • autoCropArea:自动剪裁的区域大小占可见区域的比例,范围为 0 到 1。
  • enforceAspectRatio:强制按照指定的宽高比例进行剪裁,不允许自选。
  • rounded:剪裁区域是否圆角。
  • keepAspect:剪裁区域是否保持原宽高比例。
  • showCropTool 和 showSize:是否显示剪裁工具和尺寸等信息。

除了这些属性外,ng2-img-cropper 还支持多种事件绑定,详见官方文档。

示例代码

控制器:

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

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

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

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

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

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

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

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

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

HTML:

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

CSS:

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

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

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

结论

ng2-img-cropper 是一个功能强大的 Angular 2+ 图片剪裁组件,使用简单,效果出色,非常适合需要在前端进行图片处理的项目,如果你还没有尝试过,不妨在你的项目中一试,相信你会喜欢上它的。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/ng2-img-cropper