NPM 包 image-pal-sharp 使用教程

阅读时长 6 分钟读完

简介

image-pal-sharp 是一个基于 Sharp 的图片取色工具,它可以快速获取一张图片中的主色调,并且支持对图片进行 resize 和 crop。该工具基于 Node.js 平台,可以在前端和后端都使用。

安装

使用 npm 进行安装:

使用

获取图片主色调

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

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

palette 的值将会是一个数组,包含了指定数量的主色调信息。

对图片进行 resize 和 crop

可以使用 sharp 函数对图片进行 resize 和 crop 操作,返回值为 Buffer 类型。

深度讲解

获取图片主色调

image-pal-sharp 基于 Sharp,它的主要作用是获取一张图片中的主色调。它的核心逻辑如下:

  1. 先将图片进行 resize 操作,将其宽度调整为指定的值,以加快颜色计算速度。
  2. 对于调整后的图片,遍历所有像素点,将它们转化成 Lab 颜色空间,这里的 L,A,B 就是颜色的三个通道。
  3. 对于转换后的每个像素点,做聚类分析,K-Means 算法可以实现。
  4. 通过聚类分析得到的 K 个主要颜色,合并相似的颜色,再将颜色值转化为 rgb 值,按照每个 rgb 值在图片中出现的频率进行权重计算,得到最终的主色调集合。

具体实现可以查看代码:

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

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

对图片进行 resize 和 crop

sharp 是一个 Node.js 平台下的图片处理库,它提供了强大的图片处理功能,包括 resize 和 crop 等操作。代码示例:

其中,resize 的参数为目标宽度和高度,extract 的参数为左上角坐标(left、top)、宽度和高度。通过对图片进行 resize 和 crop 操作,可以得到不同尺寸和位置的图片,用于不同的业务需求。

指导意义

image-pal-sharp 可以作为一个基础的图片处理工具,为前端和后端的开发提供了非常方便的色彩提取和图片处理功能。在前端颜色设计和图片展示等方面都具有重要的应用价值。同时,image-pal-sharp 代码清晰易读,学习难度相对较低,也为后续研究和扩展提供了基础保障。对于前端开发人员,掌握 image-pal-sharp 的使用方法,能够提高开发效率,降低开发难度。

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

纠错
反馈