pawella
pawella

Reputation: 33

php imagick setCompressionQuality and compositeImage

I have experienced a problem obtaining the effect of compression during joining two images together - an image and background. Gennerally the idea is to make an final image while first, main image doesn't lose its quality but the background does (in effect is compressed).

<?
        /* --- */
        $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..../
?>

Does anyone know how to do it without saving compressed file which contains background.

Excuse for my english and thanks for any response. pawella

Upvotes: 1

Views: 1708

Answers (1)

Nadh
Nadh

Reputation: 7243

What if you add:

$imageOutput->setImageCompression(imagick::COMPRESSION_JPEG );
$imageOutput->setimagecompressionquality( 100 );

Upvotes: 1

Related Questions