當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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