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');
});
输出:
参考:
相关用法
- Node.js GM channel()用法及代码示例
- Node.js GM flop()用法及代码示例
- Node.js GM chop()用法及代码示例
- Node.js GM drawLine()用法及代码示例
- Node.js GM whitePoint()用法及代码示例
- Node.js GM drawArc()用法及代码示例
- Node.js GM drawEllipse()用法及代码示例
- Node.js GM drawCircle()用法及代码示例
- Node.js GM drawBezier()用法及代码示例
- Node.js GM drawPolyline()用法及代码示例
- Node.js GM whiteThreshold()用法及代码示例
- Node.js GM randomThreshold()用法及代码示例
- Node.js GM enhance()用法及代码示例
- Node.js GM modulate()用法及代码示例
注:本文由纯净天空筛选整理自sarthak_ishu11大神的英文原创作品 Nodejs | GM operator() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。