php imagick setCompressionQuality和compositeImage

时间:2012-04-30 09:50:38

标签: php image merge compression imagick

在将两张图像连接在一起时,我遇到了获得压缩效果的问题 - 图像和背景。一般来说,这个想法是制作最终图像,而主要图像不会失去质量,但背景确实如此(实际上是压缩的)。

<?
        /* --- */
        $imageOutput = new Imagick();
        $image = new Imagick( $orginalPath );
        $wathermark = new Imagick( $watherMarkFile );

        // I'm compressing background image     
        $image->setImageCompression(imagick::COMPRESSION_JPEG );
        $image->setimagecompressionquality( 20 );
        $image->flattenimages();            

        // We're creating an image wich contains compressed background
        $imageOutput->newImage($image->getimagewidth(), $image->getimageheight(), new ImagickPixel('white') );
        $imageOutput->compositeimage($image, Imagick::COMPOSITE_DEFAULT, 0, 0);
        $imageOutput->setImageFormat('jpeg');

        // And we are composing them
        $imageOutput->compositeImage(   $wathermark, Imagick::COMPOSITE_OVERLAY, 10,10)

        $data = $imageOutput->getimageblob();

        /.... output..../
?>

有没有人知道怎么做而不保存包含背景的压缩文件。

借口我的英文,感谢您的回复。 pawella

1 个答案:

答案 0 :(得分:1)

如果添加:

,该怎么办?
$imageOutput->setImageCompression(imagick::COMPRESSION_JPEG );
$imageOutput->setimagecompressionquality( 100 );