La función operator() es una función incorporada en la biblioteca GraphicsMagick que se utiliza para aplicar un operador matemático, bit a bit o de valor a un canal de imagen. Si el resultado de las operaciones es negativo, el resultado se restablece a cero y si el resultado de las operaciones es un desbordamiento del rango disponible, el resultado se establece en el valor máximo posible.
Sintaxis:
operator( channel, operator, rvalue[%] )
Parámetros: esta función acepta cuatro parámetros, como se mencionó anteriormente y se describe a continuación:
- canal: este parámetro se utiliza para especificar el valor del canal entre rojo, verde, azul, opacidad, mate, cian, magenta, amarillo, negro, todo o gris. El valor del canal Todo modifica los canales de color y no modifica la opacidad del canal.
- operador: este parámetro se utiliza para especificar el valor del operador.
La lista de operadores y sus descripciones se dan a continuación:- Agregar: el resultado del operador Agregar proporciona el valor r agregado al valor del canal.
- Y: El resultado del operador Y da el Y lógico de rvalue con el valor del canal.
- Asignar: el operador Asignar da el resultado como valor proporcionado.
- Profundidad: el resultado del operador de profundidad proporciona el valor del canal ajustado para que pueda almacenarse (aproximadamente) en el número especificado de bits sin pérdida adicional.
- Dividir: el operador Dividir da el resultado como valor de canal dividido por rvalue.
- Gamma: El operador Gamma da el resultado como valor de canal gamma ajustado por rvalue.
- LShift: El operador Lshift da el resultado como valor de canal desplazado a la izquierda bit a bit por rvalue bits.
- Log: el operador Log proporciona el resultado calculado como log(value*rvalue+1)/log(rvalue+1).
- Max: el operador Max da el resultado asignado a rvalue si rvalue es mayor que value.
- Min: el operador Min da el resultado asignado a rvalue si rvalue es menor que value.
- Multiplicar: el operador Multiplicar da el resultado como valor de canal multiplicado por rvalue.
- Negar: El operador Negar da el resultado como el inverso del valor del canal (como un negativo de película).
- O: El operador OR da el resultado como el OR lógico de rvalue con valor de canal.
- Pow: El operador pow da el resultado calculado como pow(valor,rvalor).
- Rshift: el operador rshift da el resultado como un valor de canal desplazado a la derecha bit a bit por rvalue bits.
- Restar: el operador de resta da el resultado como valor de canal menos rvalue.
- Umbral: El operador Umbral da el resultado como máximo (blanco) si el valor del canal es mayor que el valor r, o mínimo (negro) si es menor o igual que el valor r.
- Umbral-blanco: El operador Umbral-blanco da el resultado como máximo (blanco) si el valor del canal es mayor que rvalue y no cambia si es menor o igual que rvalue.
- Threshold-White-Negate: el operador Threshold-white-negate da el resultado como establecido en negro si el valor del canal es mayor que rvalue y no cambia si es menor o igual que rvalue.
- Threshold-black: El operador Threshold-black da el resultado como mínimo (negro) si el valor del canal es menor que rvalue y no cambia si es mayor o igual que rvalue.
- Threshold-Black-Negate: El operador Threshold-black-negate da el resultado como blanco si el valor del canal es menor que rvalue y no cambia si es mayor o igual que rvalue.
- Xor: el operador XOR da el resultado como el XOR lógico de rvalue con el valor del canal.
- Noise-Gaussian: El operador Noise-Gaussian da el resultado como el valor del canal actual modulado con ruido gaussiano según la intensidad especificada por rvalue.
- Ruido-Impulso: El operador Ruido-Impulso da como resultado el valor del canal actual modulado con ruido de Impulso de acuerdo con la intensidad especificada por rvalue.
- Ruido-Laplaciano: El operador Ruido-Laplaciano da como resultado el valor del canal actual modulado con ruido Laplaciano de acuerdo con la intensidad especificada por rvalue.
- Noise-Multiplicative: El operador Noise-Multiplicative da el resultado como el valor del canal actual modulado con ruido gaussiano multiplicativo de acuerdo con la intensidad especificada por rvalue.
- Ruido-Poisson: El operador Ruido-Poisson da como resultado el valor del canal actual modulado con ruido de Poisson según la intensidad especificada por rvalue.
- Noise-Random: El operador Noise-Random da el resultado como valor de canal actual modulado con ruido aleatorio (distribución uniforme) según la intensidad especificada por rvalue.
- Uniforme de Ruido: El operador Uniforme de Ruido da el resultado como el valor del canal con ruido uniforme aplicado de acuerdo a la intensidad especificada por rvalue.
- rvalue: este parámetro se usa para especificar el valor que está en el rango de punto flotante o valor entero. Por lo general, el valor r estará en el rango de 0 a MaxRGB, donde MaxRGB es el valor cuántico más grande admitido por la compilación GraphicsMagick (255, 65535 o 4294967295), pero los valores fuera de este rango son útiles para algunas operaciones aritméticas. Los valores de los parámetros se redondean a un valor integral positivo antes de usarlo. Si agregamos un símbolo de porcentaje (%) entonces el rango del argumento tiene de 0 a 100.
Valor de retorno: esta función devuelve el objeto GraphicsMagick.
Ejemplo 1:
javascript
// Include gm library var 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'); });
Producción:
Ejemplo 2:
javascript
// Include gm library var 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'); });
Producción:
Ejemplo 3:
javascript
// 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', 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'); });
Producción:
Referencia:
Publicación traducida automáticamente
Artículo escrito por sarthak_ishu11 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA