当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js GM operator()用法及代码示例


operator() 函数是 GraphicsMagick 库中的内置函数,用于将数学、按位或值运算符应用于图像通道。如果运算结果为负,则结果重置为零,如果运算结果溢出到可用范围,则结果设置为最大可能值。

用法:

operator( channel, operator, rvalue[%] )

参数:该函数接受如上所述和如下所述的四个参数:

  • channel:此参数用于指定通道的值:红色、绿色、蓝色、不透明度、哑光、青色、品红色、黄色、黑色、全部或灰色。渠道值All修改颜色通道,但不修改通道的不透明度。
  • operator:该参数用于指定运算符的值。
    运算符列表及其说明如下:
    • Add:Add 运算符的结果给出添加到通道值的右值。
    • And:And 运算符的结果给出右值与通道值的逻辑与。
    • Assign:赋值运算符将结果作为提供的右值给出。
    • Depth:深度运算符的结果给出了调整后的通道值,以便它可以(大约)存储在指定的位数中而不会产生额外的损失。
    • Divide:Divide 运算符给出的结果为通道值除以右值。
    • Gamma:Gamma 运算符给出的结果是通过右值调整的通道值 gamma。
    • LShift:Lshift 运算符将结果作为通道值按右值位按位 left-shifted 给出。
    • Log:Log 运算符给出的结果计算为 log(value*rvalue+1)/log(rvalue+1)。
    • Max:如果右值大于该值,则 Max 运算符给出分配给右值的结果。
    • Min:如果右值小于值,则 Min 运算符给出分配给右值的结果。
    • Multiply:Multiply 运算符给出的结果为通道值乘以右值。
    • Negate:Negate 运算符给出的结果是通道值的倒数(就像电影底片一样)。
    • Or:OR 运算符给出的结果是右值与通道值的逻辑或。
    • Pow:pow 运算符给出的计算结果为 pow(value,rvalue)。
    • Rshift:rshift 运算符将结果作为通道值按右值位按位 right-shifted 给出。
    • Subtract:减法运算符给出的结果是通道值减去右值。
    • Threshold:如果通道值大于右值,则阈值运算符给出的结果为最大值(白色);如果通道值小于或等于右值,则给出最小值(黑色)。
    • Threshold-white:如果通道值大于右值,Threshold-white 运算符给出的结果为最大值(白色);如果通道值小于或等于右值,则保持不变。
    • Threshold-White-Negate:如果通道值大于右值,Threshold-white-negate 运算符将结果设置为黑色,如果通道值小于或等于右值,则结果保持不变。
    • Threshold-black:如果通道值小于右值,Threshold-black 运算符给出的结果为最小值(黑色);如果通道值大于或等于右值,则保持不变。
    • Threshold-Black-Negate:如果通道值小于右值,Threshold-black-negate 运算符将结果设置为白色,如果通道值大于或等于右值,则结果保持不变。
    • Xor:XOR 运算符给出的结果是右值与通道值的逻辑 XOR。
    • Noise-Gaussian:Noise-Gaussian 运算符给出的结果是根据 rvalue 指定的强度用高斯噪声调制的当前通道值。
    • Noise-Impulse:Noise-Impulse 运算符给出的结果是根据右值指定的强度用脉冲噪声调制的当前通道值。
    • Noise-Laplacian:Noise-Laplacian 运算符给出的结果是根据 rvalue 指定的强度用拉普拉斯噪声调制的当前通道值。
    • Noise-Multiplicative:Noise-Multiplicative 运算符给出的结果是根据右值指定的强度用乘性高斯噪声调制的当前通道值。
    • Noise-Poisson:Noise-Poisson 运算符给出的结果是根据右值指定的强度用泊松噪声调制的当前通道值。
    • Noise-Random:Noise-Random 运算符给出的结果是根据 rvalue 指定的强度用随机(均匀分布)噪声调制的当前通道值。
    • Noise-Uniform:Noise-Uniform 运算符给出的结果为通道值,根据右值指定的强度应用均匀噪声。
  • rvalue:该参数用于指定浮点数或整数值范围内的值。通常,右值的范围为 0 到 MaxRGB,其中 MaxRGB 是 GraphicsMagick 版本支持的最大量子值(255、65535 或 4294967295),但此范围之外的值对于某些算术运算很有用。参数值在使用前会四舍五入为正整数值。如果我们添加百分号 (%),则参数范围为 0 到 100。

返回值:该函数返回GraphicsMagick对象。

示例 1:

javascript


// Include gm library
const gm = require('gm');
// Import the image
gm('1.png')
// Invoke operator function with
// Channel as 'Green', Operator
// as 'And' and rValue(%) as 55
.operator('Green', 'And', 55, true)
// Process and Write the image
.write("operator-and1.png", function (err) {
      if (!err) console.log('done');
});

输出:

示例 2:

javascript


// Include gm library
const gm = require('gm');
  
// Import the image
gm('1.png')
  
// Invoke operator function with
// Channel as 'Green', Operator
// as 'Divide' and rValue(%) as 55
.operator('Green','Divide',10,true)
  
// Process and Write the image
.write("operator-divide1.png", function (err) {
      if (!err) console.log('done');
});

输出:

示例3:

javascript


// Include gm library
const gm = require('gm');
// Import the image
gm(600, 300, 'white')
// Set the color for the stroke
.stroke("green", 3)
// Set the font 
.font("Helvetica.ttf", 60)
// Call to drawText Function
.drawText(100, 280, "GeeksforGeeks!")
// Invoke operator function with
// Channel as 'Green', Operator as
// 'Assign' and rValue(%) as 35
.operator('Green', 'Assign', 35, true)
// Process and write the image 
.write("operator-assign2.png", function (err) {
    if (!err) console.log('done');
});

输出:

参考:



相关用法


注:本文由纯净天空筛选整理自sarthak_ishu11大神的英文原创作品 Node.js GM operator() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。