2015-08-21 2 views
1

Вот версия GD того, что я намереваюсь сделать. Он помещает изображение в центр белого фона.Изображение на белом фоне Использование Imagick

$background = imagecreatetruecolor(709,709); 
$whiteBackground = imagecolorallocate($background, 255, 255, 255); 
imagefill($background,0,0,$whiteBackground); 
imagecopyresampled(
    $background, $new_img,(709-$imageWidth)/2,(709-$imageHeight)/2, 
    0, 0, $imageWidth, $imageHeight, $width, $height 
); 
ImageJpeg ($background,"$path/$newName.$file_ext", 85);` 

Но я хочу, чтобы это было выполнено с использованием Imagick.

ответ

0

Добро пожаловать в SO,

Что вы ищете - flatten;

$im = new Imagick($old_img); 
$im->setImageBackgroundColor('white'); 
$im->setImageAlphaChannel(11); 
$im->mergeImageLayers(imagick::LAYERMETHOD_FLATTEN); 
$im->setFormat("png"); 

$new = fopen($path . DIRECTORY_SEPARATOR . $newName . DIRECTORY_SEPARATOR . $file_ext, "w"); 
$im->writeImageFile($new); 
$im->clear(); 
$im->destroy(); 

Не говорите, что это именно то, что вы ищете, но это должно помочь вам хорошо на вашем пути. $im->setImageAlphaChannel(11); можно заменить $im->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE);, если ваша версия Imagic является 3.2.0b2 или выше

+0

Хорошо. Спасибо – user5156411

+0

@ user5156411, пожалуйста, учтите ответ, если он работает на вас или, по крайней мере, повысит его, если это вам поможет. Помогите сообществу найти лучшие вопросы/ответы – DarkMukke

+0

Простите, я поддержал ответ, и я подумал, что он пометит его. Я никогда не знал, что вам нужно щелкнуть по значку галочки, чтобы отметить его как принятый ответ. Я новичок здесь, и мне сказали, что мои upvotes пока не укажут. – user5156411

Смежные вопросы