如何将背景黑色更改为透明?

时间:2010-04-26 18:54:45

标签: php gd imagick

我正在使用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

感谢回复人员: - )

2 个答案:

答案 0 :(得分:1)

创建Imagick对象后,在他的参数中设置背景透明:

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

答案 1 :(得分: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不使用它们。我能想到自动设置值的唯一方法是在修剪后获得图像大小并在重置时使用它。

随着我的建议所有我想建议的是从一个更大的图像开始并在旋转后减少它,看看是否有帮助;也许使用一些锐化。但是,由于线条太紧密而且非常靠近,我认为不会有太多帮助。

相关问题