2013-01-11 33 views
0

我正处于ImageMagick学习曲线的开始阶段。 我已成功创建一些带有外部光阴影的图案背景上的文字,以提供切出文字的美观。 为了完成这个效果,我需要给文本和内部的黑暗阴影。 是否有任何ImageMagick专家可以帮助使用PHP? 这是我很满意的代码。如何使用php Imagick在文本中创建内部投影?

<?php 
header('Content-type: image/jpeg'); 
$background_layer = new Imagick('test_background.jpg'); # background image 
$d = $background_layer->getImageGeometry(); 
$w = $d['width']; 
$h = $d['height']; 
$text_layer = new Imagick(); 
$text_layer->newImage($w, $h, new ImagickPixel('none')); 
$text_layer->setImageFormat('png'); 
$ImagickDraw = new ImagickDraw(); 
$ImagickDraw->setFillColor('#484848'); 
$ImagickDraw->setFont('Helvetica-Bold'); 
$ImagickDraw->setFontSize(40); 
$ImagickDraw->setTextAlignment(2); // centre 

$text_layer->annotateImage($ImagickDraw, $w/2, 50, 0, "Stuart's\niPhone"); 

// create white drop shadow on it's own layer 
$shadow_layer_white = $text_layer->clone(); 
$shadow_layer_white->setImageBackgroundColor(new ImagickPixel('white')); 
$shadow_layer_white->shadowImage(70, .3, 1, 1); 

// composite original text_layer onto shadow_layer 
$shadow_layer_white->compositeImage($text_layer, Imagick::COMPOSITE_OVER, 0, 0); 
// composite shadow_layer (which now has text AND the shadow) onto image_layer 
$background_layer->compositeImage($shadow_layer_white, Imagick::COMPOSITE_OVER, 0, 0); 
echo($background_layer); 
?> 

我太新张贴图片,所以你可以看到我有这么远在

http://www.avforums.com/images/temptest.php

任何帮助,您可以给文本加一个内部黑暗的阴影会不胜感激。 谢谢

回答

0

您正在使用Imagick而不是直接使用Imagemagick,并且可能想要添加该标记。

我不使用Imagick,但shadeimage应该一气呵成你想做什么?

+0

谢谢。我编辑了我的问题。这工作得很好。 $ text_layer-> shadeImage(false,135,35);内心深处的区域并不像我想要的那么模糊,但模糊了这个元素超出了我的想象。我需要文本层在文本之外是透明的。如何使文本以外的颜色透明? –