2012-05-25 1 views
3

전체 캡션 상자 (또는 배경)가 아닌 캡션 텍스트 만 색칠하고 싶습니다.Imagick 캡션에 텍스트와 배경을 구분하여 표시하는 방법은 무엇입니까?

$im->setFont("somefont.ttf"); 
$im->setpointsize(72); 
: 나는 글꼴과 다음 코드를 사용하여 글꼴 크기를 설정해야하기 때문에 업그레이드 한

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

:이 코드를 사용할 수있는 Imagemagick 6.3.7 전에 는 레드 컬러 텍스트가합니다

이제 colorizeImage는 같은 방식으로 작동하지 않습니다. '캡션 텍스트 만 색이 지정되었지만 캡션 BACKGROUND도 ..!

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

나는 흰색 텍스트 뒤에 흰색 배경, 또는 흰색 상자 (상자의 텍스트의 색상을)이 : 예를 들어

이 나는 ​​검은 색 배경에 흰색 텍스트를 설정하는 경우!

colorizeImage 전후에 setBackgroundColor를 시도해 보았습니다. 나는 아직도 많은 연구를 해왔지만 캡션과 배경 캡션을 별도로 색칠하지 않았습니다.

나에게 도움이 될만한 사람이 있습니까? 사전 :

답변

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'); 
0
  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(); 
관련 문제