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


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


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

用法:

operator( channel, opearator, rvalue[%] )

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



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

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

范例1:

// Include gm library 
var gm = require('gm'); 
  
// Import the image 
gm('1.png') 
  
// Invoke operator function with 
// Channel as 'Green', Opeartor 
// 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:

// Include gm library 
var gm = require('gm'); 
   
// Import the image 
gm('1.png') 
   
// Invoke operator function with 
// Channel as 'Green', Opeartor 
// 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:

// Include gm library 
var 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', Opeartor 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大神的英文原创作品 Nodejs | GM operator() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。