2010-04-26 224 views
2

我正在使用Image Magick旋轉圖像(如PHP-GD縮小圖像)。如何將背景黑色更改爲透明?

但它使背景變黑。此外,圖像看起來不太好(但比PHP-GD更好)。

有什麼建議嗎?

@oren,@razzed 下面的代碼

 
$patchImageS  = 'kapeels.png'; // the image to be patched over the final bg 
$imagick   = new Imagick();  $imagick->readImage($patchImageS); 
$imagick->rotateImage(new ImagickPixel(), 355); 
$imagick->transparentPaintImage('black', 0.0,0,false); 
header('content-type:image/png'); 
$fp=fopen('tts.png','w+'); 
fwrite($fp,$imagick->getImage()); 
fclose($fp); 

這是我正努力將圖像旋轉 -

http://www.lilpirate.net/kapeels.png

感謝您的答覆傢伙:-)

+0

圖像是純色嗎? – 2010-04-26 19:01:19

+0

如何處理一些示例代碼,命令行或源圖像URL? – razzed 2010-04-26 21:07:28

+0

@razzed - 問題已經更新。看一看。 @oren - nope – kapeels 2010-04-27 03:47:36

回答

1

創建Imagick對象後,在他的參數中設置透明背景:

$imagick->newimage($width, $height, "rgba(0, 0, 0, 0)"); 
1

旋轉圖像是這樣的:

$im = new Imagick('kapeels.png'); 
$im->rotateImage(new ImagickPixel('none'), 7); 
$im->trimImage (0); 
$im->resetImagePage('216x174+0+0'); 
$im->writeImage('rotateImage.png'); 
$im->destroy(); 

您需要THR repage居中圖像在畫布上,但我不知道爲什麼你作爲ImageMagick的不使用他們需要的價值。我能想到的自動設置值的唯一方法是在修剪後獲取圖像大小並在重置中使用它。

隨着quility所有我能建議的是從一個較大的圖像開始,並減少它在旋轉後,看看是否有幫助;也許使用一些銳化。但是我認爲這些線條非常薄並且彼此靠得很近,這對我們來說不會有什麼幫助。