npm 包 @traveloka/rps 使用教程

介绍

@traveloka/rps 是 Traveloka 前端团队开发的一个轻量级且易于使用的 React 图像处理库。它封装了许多常见的图像处理功能,如图片裁剪和缩放,并提供了许多高级选项,如图片颜色调整和模糊效果。这个包可以用于任何需要在 React 应用程序中对图片进行处理的项目中。

安装

首先,你需要在你的项目中安装 @traveloka/rps。

npm install @traveloka/rps

或者,如果你正在使用 yarn:

yarn add @traveloka/rps

然后,你可以在你的应用程序中导入它:

import * as rps from "@traveloka/rps";

如何使用

缩放图像

rps.resize 函数可以用于缩放图像。它接受三个参数:要缩放的图像,目标大小和可选的配置选项。

import * as rps from "@traveloka/rps";

const img = document.getElementById("my-image");

rps.resize(img, { width: 800, height: 600 }).then((resizedImg) => {
  // 处理缩放后的图像
});

这将返回一个包含缩放后图像数据的 Promise。你可以将它放入任何现有的 React 图像组件中进行显示,或将其保存到文件或后端 API 中。

裁剪图像

使用 rps.crop 函数可以在图像中裁剪出指定区域。它接受三个参数:要裁剪的图像,裁剪区域的位置和大小,以及可选的配置选项。

import * as rps from "@traveloka/rps";

const img = document.getElementById("my-image");

rps.crop(img, {
  x: 50,
  y: 50,
  width: 400,
  height: 400
}).then((croppedImg) => {
  // 处理裁剪后图像
});

这将返回一个包含裁剪后图像数据的 Promise。同样,你可以将它用于任何现有的 React 图像组件中进行显示,或将其保存到文件或后端 API 中。

调整颜色

使用 rps.adjust 函数可以对图像颜色进行调整。它接受两个参数:要调整的图像和包含调整选项的对象。

import * as rps from "@traveloka/rps";

const img = document.getElementById("my-image");

rps.adjust(img, {
  brightness: 50,
  contrast: 20,
  saturation: 30,
}).then((adjustedImg) => {
  // 处理调整后图像
});

可用的调整选项包括:

  • brightness:亮度,范围从 -100 到 100。
  • contrast:对比度,范围从 -100 到 100。
  • saturation:饱和度,范围从 -100 到 100。

应用模糊效果

rps.blur 函数可以应用模糊效果。它接受两个参数:要模糊的图像和模糊级别。

import * as rps from "@traveloka/rps";

const img = document.getElementById("my-image");

rps.blur(img, 5).then((blurredImg) => {
  // 处理模糊后图像
});

模糊级别应该是一个介于 0 和 100 之间的数字。较大的值表示更高的模糊度。如果你想对图像应用高斯模糊,可以使用 rps.gaussianBlur

例子

下面是一个完整的示例,演示如何在 React 中使用此库来缩放和裁剪图像。

import * as rps from "@traveloka/rps";
import React, { useState } from "react";

function ImageEditor({ src }) {
  const [imageData, setImageData] = useState(null);

  function handleResize() {
    const img = new Image();
    img.src = src;
    img.onload = () => {
      rps
        .resize(img, { width: 800, height: 600 })
        .then((resizedImg) => setImageData(resizedImg));
    };
  }

  function handleCrop() {
    const img = new Image();
    img.src = src;
    img.onload = () => {
      rps
        .crop(img, {
          x: 50,
          y: 50,
          width: 400,
          height: 400
        })
        .then((croppedImg) => setImageData(croppedImg));
    };
  }

  return (
    <div>
      <img src={src} />
      <button onClick={handleResize}>缩放</button>
      <button onClick={handleCrop}>裁剪</button>
      {!!imageData && <img src={imageData} />}
    </div>
  );
}

这个组件中有两个按钮,分别用于缩放图像和裁剪图像。当你点击其中一个按钮时,它将图像发送给 @traveloka/rps 库,并向用户显示处理后的图像。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/600673defb81d47349e53bf0


纠错反馈