2013-05-12 40 views

回答

6

使用ImagickDraw創建一個「繪製」對象(它就像一個圖層),然後將其添加到圖像上。這裏有一個例子:

// 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; 

如果你想被拉伸覆蓋,以適應800×600,然後使用該尺寸,而不是圖形尺寸合成