Skip to content

generatePaddedImage

为图片添加透明内边距,适用于需要统一间距的图标设计。

前置依赖

依赖参数

参数名类型说明
sharpSharpSharp 图像处理函数(直接作为参数传入)

环境要求

  • sharp: 图像处理库,用于图像尺寸计算和内边距处理
bash
npm install sharp

函数签名

typescript
function generatePaddedImage(
  image: Buffer,
  paddingRatio?: number,
  sharp: Sharp
): Promise<Buffer>

参数

参数名类型必填默认值说明
imageBuffer-输入图像的 Buffer 数据
paddingRationumber0.12 (12%)内边距比例(相对于图片宽度)
sharpSharp-Sharp 图像处理函数

返回值

类型说明
Promise<Buffer>Promise,解析为添加内边距后的图像 Buffer

工作原理

  1. 使用 sharp 获取原始图像的元数据(宽度、高度)
  2. 根据 paddingRatio 计算内边距像素数:padding = width * paddingRatio
  3. 计算新图像尺寸:newSize = originalSize + 2 * padding
  4. 创建新的透明画布,尺寸为 newSize × newSize
  5. 使用 sharp 的 composite 功能:
    • 将原始图像放置在新画布的中心
    • 偏移量为 (padding, padding)
  6. 输出为 PNG 格式(保留透明度)
  7. 返回处理后的图像 Buffer

边距大小基于原图宽度的比例计算,常用于图标生成时创建内边距效果,使图标内容不会紧贴边缘。