关于节点 gm 图像不透明度

About the node gm image opactity

我想使用节点包gm生成图像:

var fs = require('fs'),
gm = require('gm').subClass({imageMagick: true});

......

gm(200, 200, "#ddff99f3")
  .fontSize(200)
  .fill("#FFF")
  .drawText(27, 173, "U")
  .write("test.jpg", function (err) {
    console.log("OK")
});

现在我想将文本 U 的不透明度设置为 0.5(而不是整个图像的不透明度)。那我该怎么办呢?

在将 fill 写为 #FFF 时,您实际上是以 RGB 格式指定它。如果您还想指定不透明度,则应移至 RGBA 规范,这样您还可以提供 Opacity/Alpha 设置。在十六进制术语中,8 或多或少是十六进制 F 的一半,因此请尝试使用:

gm(200, 200, "#ddff99f3")
  .fontSize(200)
  .fill("#FFF8")                        <--- I have added `8` for Alpha/Opacity here
  .drawText(27, 173, "U")
  .write("test.jpg", function (err) {
    console.log("OK")
});