我只想为标题文本着色,而不是整个标题框(或背景)。 在Imagemagick 6.3.7之前,我可以使用此代码来生成红色文本:
$im->newPseudoImage(300, 300, "caption:" . "Put your text" );
$im->colorizeImage('#ff0000',1.0);
我已升级,因为我需要使用以下代码设置字体和字体大小:
$im->setFont("somefont.ttf");
$im->setpointsize(72);
现在colorizeImage的工作方式不同,因为它不会只标注字幕TEXT,但标题背景也是......!
例如,如果我设置黑色背景和白色文字:
$im->newPseudoImage(300, 300, "caption:" . "Put your text" );
$im->setBackgroundColor('black');
$im->colorizeImage('white',1.0);
我在白色文字后面有一个白色背景,或白色框(框中文字的颜色)!
我尝试了不同的东西,在colorizeImage之前或之后的setBackgroundColor,仍然是相同的...我已经做了很多研究,但没有发现任何其他颜色分别为标题和背景标题着色。
有人有意帮助我吗? Thx提前:))
答案 0 :(得分:1)
$im = new Imagick();
$im->newPseudoImage(300, 300, "caption:" . "Put your text" );
$im->setBackgroundColor('transparent');
$clut = new Imagick();
$clut->newImage(1, 1, new ImagickPixel('#ff0000'));
$txt->clutImage($clut);
$clut->destroy();
答案 1 :(得分:0)
不确定这是否是您想要的,但这会在黑色背景上显示白色文字:
$width = '600';
$height = '200';
$im = new Imagick();
$draw = new ImagickDraw();
$draw->setFont('arial.ttf');
$draw->setFontSize( 96 );
$fillcolor = new ImagickPixel( "white" );
$draw->setFillColor( $fillcolor );
$draw->setGravity( Imagick::GRAVITY_CENTER );
$bgcolor = new ImagickPixel( "black" );
$text = 'Rubblewebs';
$im->newImage($width, $height, $bgcolor );
$im->annotateImage($draw, 0, 0, 0, $text);
$im->setImageFormat("png");
$im->writeImage( 'text.png' );