2012-10-31 66 views
2

我加載透明PNG圖像,我每一次我嘗試使用setimagebackgroundcolor()它仍然透明PHP Imagick不能設置圖像背景色

設置背景顏色
$input_img = new Imagick(); 

    $input_img->setBackgroundColor("#ff0000"); 

    $input_img->readImage("transparent.png"); 

    $input_img->setimagebackgroundcolor("#00ff00"); 

    $input_img->setImageFormat("png"); 

    $input_img->setimagebackgroundcolor("#ff00ff"); 

    $input_img->writeimage("image.png"); 
+0

發現這個問題爲好。對我來說看起來像一個bug。 – F21

+0

你混淆顏色和不透明度。如果一個像素是透明的,它可以有任何顏色並且仍然是透明的。你必須先改變透明度。或者用透明度來設置顏色。 –

回答

-1

試試這個!

$imput_img->setBackgroundColor(new ImagickPixel('blue')); 
0

第一行代碼爲顏色設置了一個新的Imagickpixel對象。第二行創建一個新的框架,1920和1200是當然的尺寸。

$color = new ImagickPixel("white"); 

$input_img->newImage(1920,1200, $color) 
0

訣竅是使用:$im = $im->flattenImages();

<?php 
$im = new Imagick($filename); 

$im->setImageBackgroundColor('#ffffff'); 
$im = $im->flattenImages(); 

$im->setImageFormat("jpeg"); 
$im->setImageCompressionQuality(95); 
$im->writeImage($filename);