generatePaddedImage
为图片添加透明内边距,适用于需要统一间距的图标设计。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
sharp | Sharp | Sharp 图像处理函数(直接作为参数传入) |
环境要求
- sharp: 图像处理库,用于图像尺寸计算和内边距处理
bash
npm install sharp函数签名
typescript
function generatePaddedImage(
image: Buffer,
paddingRatio?: number,
sharp: Sharp
): Promise<Buffer>参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
image | Buffer | 是 | - | 输入图像的 Buffer 数据 |
paddingRatio | number | 否 | 0.12 (12%) | 内边距比例(相对于图片宽度) |
sharp | Sharp | 是 | - | Sharp 图像处理函数 |
返回值
| 类型 | 说明 |
|---|---|
Promise<Buffer> | Promise,解析为添加内边距后的图像 Buffer |
工作原理
- 使用 sharp 获取原始图像的元数据(宽度、高度)
- 根据
paddingRatio计算内边距像素数:padding = width * paddingRatio - 计算新图像尺寸:
newSize = originalSize + 2 * padding - 创建新的透明画布,尺寸为
newSize × newSize - 使用 sharp 的
composite功能:- 将原始图像放置在新画布的中心
- 偏移量为
(padding, padding)
- 输出为 PNG 格式(保留透明度)
- 返回处理后的图像 Buffer
边距大小基于原图宽度的比例计算,常用于图标生成时创建内边距效果,使图标内容不会紧贴边缘。