2013-05-12 3 views
2

저는 ImageMagick을 사용하여 PHP로 텍스트에서 투명한 이미지를 만듭니다.투명 배경으로 그려진 텍스트 위에 패턴 오버레이 추가

생성 된 이미지 위에 패턴 오버레이를 추가하는 것이 가능한지 (그리고 어떻게되는지) 알고 싶습니다.

실제 결과 :

Actual result

원하는 결과 :

enter image description here

어떤 조언을 아이디어는 투명 배경을두고 텍스트를 통해 텍스처를 적용하는 것입니다 대단히 감사하겠습니다.

답변

6

ImagickDraw을 사용하여 레이어와 비슷한 "그리기"개체를 만든 다음 이미지 위에 추가하십시오.

을 합성 할 때 오버레이가 800 × 600에 맞게 늘어하려면

// create canvas 
$draw = new ImagickDraw(); 
$draw->setfont('/path/to/your/font.ttf'); 

// load your overlay image 
$overlay = new Imagick('/path/to/your/pattern.png'); 

// define pattern 
$draw->pushPattern('myOverlay', 0, 0, 
    $overlay->getImageWidth(), $overlay->getImageHeight()); 

// fill canvas with the pattern (tile) 
$draw->composite(Imagick::COMPOSITE_COPY, 0, 0, 
    $overlay->getImageWidth(), $overlay->getImageHeight(), $overlay); 

// destroy pattern 
$draw->popPattern(); 
$draw->setFillPatternURL('#myOverlay'); 

// put text 
$draw->setFontSize(100); 
$draw->annotation(0, 0, 'My TextImage'); 

// create your image (800x400) 
$output = new Imagick(); 
$output->newimage(800, 400, 'transparent'); 

// this will center your canvas 
$output->setGravity(Imagick::GRAVITY_CENTER); 

// render canvas on this image 
$output->drawImage($draw); 

$output->setImageFormat('png'); 
header('Content-Type: image/png'); 
print $output; 

, 그럼 대신 패턴 크기의 크기를 사용 : 다음은 그 예이다

관련 문제