What worked for me to convert a JPG source file to a semi-transparent PNG.
<?php
$srcImagick = new Imagick($srcPath);
$pathTo50Perc = 'transparent1.png';
$srcImagick->setImageAlphaChannel(Imagick::ALPHACHANNEL_OPAQUE);
$srcImagick->evaluateImage(Imagick::EVALUATE_DIVIDE, 2, Imagick::CHANNEL_ALPHA);
$srcImagick->writeImage($pathTo50Perc);
?>
Imagick::evaluateImage
(PECL imagick 2.0.0)
Imagick::evaluateImage — Aplica una expresión a una imagen
Descripción
$op
, float $constant
[, int $channel = Imagick::CHANNEL_ALL
] )Aplica una expresión aritmética, relacional, o lógica a una imagen. Use estos operadores para aclarar u oscurecer una imagen, para aumentar o disminuir el contraste de una imagen, o para producir el "negativo" de una imagen.
Parámetros
-
op -
La evaluación del operador
-
constant -
El valor del operador
-
channel -
Proporcione cualquier constante de canal que sea válida para su modo de canal. Para aplicar más de un canal, combine las constantes channeltype usando operadores a nivel de bits. Consulte esta lista de constantes de canal.
Ejemplos
Ejemplo #1 Usando Imagick::evaluateImage()
Usando evaluateImage para reducir la opacidad de una imagen.
<?php
// Crea un nuevo objecto con la imagen
$im = new Imagick('example-alpha.png');
// Reduce el alfa en un 50%
$im->evaluateImage(Imagick::EVALUATE_DIVIDE, 2, Imagick::CHANNEL_ALPHA);
// Muestra la imagen
header("Content-Type: image/png");
echo $im;
?>
Valores devueltos
Devuelve TRUE en caso de éxito.
Errores/Excepciones
Lanza ImagickException en caso de error.
