Amazon web services 在AWS Lambda和Node.js 12.x中使用自定义字体
我正在尝试创建一个AWS Lambda函数来对图像应用水印效果。原始图像将从S3中提取,应用水印并将结果上传回S3 我使用以下代码创建这些合成:Amazon web services 在AWS Lambda和Node.js 12.x中使用自定义字体,amazon-web-services,fonts,aws-lambda,sharp,Amazon Web Services,Fonts,Aws Lambda,Sharp,我正在尝试创建一个AWS Lambda函数来对图像应用水印效果。原始图像将从S3中提取,应用水印并将结果上传回S3 我使用以下代码创建这些合成: await sharp(inputImage) .rotate() .composite([{ input: new Buffer.from(watermark), tile: true, gravity: 'northwest' }]) 使用自定义水印SVG watermark = `<
await sharp(inputImage)
.rotate()
.composite([{ input: new Buffer.from(watermark), tile: true, gravity: 'northwest' }])
使用自定义水印SVG
watermark = `<svg ... <text x="50%" y="100%" style="font-family:'Open Sans';font-weight:400;font-size:75px;font-style:normal;fill:rgba(128,128,128,1);stroke:none;" text-anchor="middle">${event.watermarkName}</text></g></svg>`;
watermark=`问Stackoverflow有助于我自己找到答案,因此我将与大家分享,以防将来有人偶然发现这个问题
AWS Lambda本身似乎甚至不支持基本字体。因此,您需要将onw字体作为文件包含在部署zip文件中
在我的情况下,这起了作用:
- 创建一个
/fonts
文件夹,并将所有需要的文件放入其中(在我的例子中是OpenSans Regular.ttf
)
- 将名为
font.conf
的文件放入此文件夹中
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/var/task/fonts/</dir>
<cachedir>/tmp/fonts-cache/</cachedir>
<config></config>
</fontconfig>
瞧
FONTCONFIG_路径
对我不起作用。只有FONTCONFIG_FILE=“/var/task/fonts.conf”
对我有效。
FONTCONFIG_PATH='./fonts'