2010-04-26 223 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所有我能建议的是从一个较大的图像开始,并减少它在旋转后,看看是否有帮助;也许使用一些锐化。但是我认为这些线条非常薄并且彼此靠得很近,这对我们来说不会有什么帮助。