$draw->setFontSize(52); //设置文字大小$draw->setFont("simhei.ttf"); //设置字体$draw->setStrokeWidth (2); 设置描边大小
$draw->setStrokeColor ("black"); //设置描边颜色那么如何设置描边位移呢?
如果直接这样用的话,描边会在文字内部,用过PS描边的都明白。我要实现的是在文字外部描边
$draw->setStrokeColor ("black"); //设置描边颜色那么如何设置描边位移呢?
如果直接这样用的话,描边会在文字内部,用过PS描边的都明白。我要实现的是在文字外部描边
解决方案 »
- php新手求助,php使用smarty从mysql中导出数据出现问题
- 请问php如何用图片功能的按钮提交表单呀,请指点!!
- PHP Startup: Unable to load dynamic library ,不知道为啥在FC9出这样的问题。
- 这是个什么错误,以前一直用的很好的,现在突然出错了!
- shtml文件中的文件包含问题
- 一个有订单功能的商务网怎么配置SSl
- 求关于 定时 计划任务的相关代码或者思路提示
- session的使用方法
- 如何直接在页面中设置session过期的时间?
- win开发php,如何让php支持ldap?
- zend studio 6.1 模板如何获得当前文件名
- 随机数有关的问题
我目前的解决办法是:创建相同的两个图层,然后合并,其中一个图层的有描边,在下面一层,另一个图层没有描边,在上层。这样就变相的设置了外部描边。
哈哈。代码:/* Create a new imagick object */
$im = new Imagick();/* Create new image. This will be used as fill pattern */
$im->newPseudoImage(50, 50, "gradient:red-red");/* Create imagickdraw object */
$draw = new ImagickDraw();/* Start a new pattern called "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);/* Composite the gradient on the pattern */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);/* Close the pattern */
$draw->popPattern();/* Use the pattern called "gradient" as the fill */
$draw->setFillPatternURL('#gradient');/* Set font size to 52 */
$draw->setFontSize(72);$draw->setFont("simhei.ttf");$draw->setStrokeWidth (20);$draw->setStrokeColor ("#bb0000");/* Annotate some text */
$draw->annotation(150, 150, "Hello World!");
//注意以上annotation的前面两个参数,表示X,Y左边。最好不要设置为0,如果为0且文字比较大的时候(我的72px),在修剪画布时,会剪掉一部分文字。呵呵。不信自己试。
/* Create imagickdraw object */
$draw2 = new ImagickDraw();/* Start a new pattern called "gradient" */
$draw2->pushPattern('gradient', 0, 0, 50, 50);/* Composite the gradient on the pattern */
$draw2->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);/* Close the pattern */
$draw2->popPattern();/* Use the pattern called "gradient" as the fill */
$draw2->setFillPatternURL('#gradient');/* Set font size to 52 */
$draw2->setFontSize(72);$draw2->setFont("simhei.ttf");/* Annotate some text */
$draw2->annotation(150, 150, "Hello World!");
//$draw->annotation(20, 50, "Hello World!");
/* Create a new canvas object and a white image */$canvas = new Imagick();$canvas->newImage(800, 300, "black");
$canvas->paintfloodfillimage('transparent',2000,NULL,0,0);//创建第一个图层,带描边的.
$canvas->drawImage($draw);
//将第二个没有描边的图层和第一个图层合并
$canvas->drawImage($draw2);
//修剪多余的空白区域
$canvas->trimImage(0);$canvas->setImageFormat('png');/* Output the image */
header("Content-Type: image/png");
echo $canvas;