Fonts PHP Imagick在圆弧剪裁中扭曲文本

Fonts PHP Imagick在圆弧剪裁中扭曲文本,fonts,imagemagick,imagick,Fonts,Imagemagick,Imagick,我试图用Imagick在PHP中扭曲一些arc文本。这是我的密码 $draw=new ImagickDraw(); $draw->setFont('cambria.ttf'); $draw->setFontSize(20); $draw->setStrokeAntialias(真); $draw->settextantialas(true); $draw->setFillColor('#ff0000'); $textOnly=new Imagick(); $textOnly->newImage(

我试图用Imagick在PHP中扭曲一些arc文本。这是我的密码

$draw=new ImagickDraw();
$draw->setFont('cambria.ttf');
$draw->setFontSize(20);
$draw->setStrokeAntialias(真);
$draw->settextantialas(true);
$draw->setFillColor('#ff0000');
$textOnly=new Imagick();
$textOnly->newImage(500100,“透明”);
$textOnly->setImageFormat('png');
$textOnly->annotateImage($draw,11,25,0,'此处的文本');
$textOnly->trimmimage(0);
$扭曲=阵列(180);
$textOnly->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_透明);
$textOnly->setImageMatte(TRUE);
$textOnly->EXTROUTMAGE(Imagick::畸变\弧,$EXTROUT,FALSE);
问题是。。。文本被剪裁到图像的外部。我做错了什么

输出图像:
显然
修剪图像
使图像处于裁剪模式,此时画布的几何图形与实际图像的几何图形不同

应用圆弧时,它使用了“错误”的几何体,即未剪切图像的几何体,这会产生文本离开图像的不必要效果

解决此问题的方法是通过Imagick功能重置图像的几何图形
setImagePage
,该功能在图像Magick手册中称为重新分页,即

<?php

$draw = new ImagickDraw();
$draw->setFont('Arial.ttf');
$draw->setFontSize(20);
$draw->setStrokeAntialias(true);
$draw->setTextAntialias(true);
$draw->setFillColor('#ff0000');


$textOnly = new Imagick();
$textOnly->newImage(500, 100, "blue");
$textOnly->setImageFormat('png');
$textOnly->annotateImage($draw, 30, 40, 0, 'Your Text Here');

$textOnly->trimImage(0);

$textOnly->setImagePage($textOnly->getimageWidth(), $textOnly->getimageheight(), 0, 0);

$distort = array( 180 );
$textOnly->setImageVirtualPixelMethod( Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);


$textOnly->setImageMatte( TRUE );
$textOnly->distortImage(Imagick::DISTORTION_ARC, $distort, FALSE);

$textOnly->setformat('png');

header("Content-Type: image/png");
echo $textOnly->getimageblob();