1

画像と背景の2つの画像を結合するときに、圧縮の効果を得るのに問題が発生しました。一般的には、最終的な画像を作成するという考え方ですが、最初にメイン画像の品質は低下しませんが、背景は低下します(実際には圧縮されます)。

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

誰かが背景を含む圧縮ファイルを保存せずにそれを行う方法を知っていますか?

私の英語のすみません、そしてどんな応答にも感謝します。パウェラ

4

1 に答える 1

1

追加するとどうなりますか:

$imageOutput->setImageCompression(imagick::COMPRESSION_JPEG );
$imageOutput->setimagecompressionquality( 100 );
于 2012-04-30T10:51:38.400 に答える