3

キャプション ボックス全体 (または背景) ではなく、キャプション テキストのみに色を付けたいと考えています。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 だけでなくキャプション Background も色付けしないため、同じようには機能しません..!

たとえば、黒の背景と白のテキストを設定した場合:

$im->newPseudoImage(300, 300, "caption:" . "Put your text" );
$im->setBackgroundColor('black');
$im->colorizeImage('white',1.0);

白いテキストの後ろに白い背景、または白いボックス (ボックスのテキストの色) があります。

colorizeImageの前後にsetBackgroundColorを試してみましたが、それでも同じです...多くの調査を行いましたが、キャプションと背景のキャプションを別々に色付けするものは他に見つかりませんでした。

私を助けるアイデアを持っている人はいますか?事前にThx :)

4

2 に答える 2

1
  1. 透明な背景が必要です。次に、前景のみに色を付けます。
  2. clutImageを使用して色を適用します。colorizeImageには、黒を置き換えるときに少し暗い色を適用するという問題があります。
$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();
于 2016-11-18T17:01:48.567 に答える
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' );
于 2012-05-25T19:22:13.797 に答える