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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。