我正在尝试将两个小的Imagick代码集成到一个代码中。第一个代码将一个句子分成单词,然后将它们分成图像。第二个代码附加这些图像,制作一个完整的基于图像的句子。在第一个代码中,我将单个基于字的图像保存在一个目录中,然后使用PHP的globe函数从第二个代码中获取。现在,我不想在目录中写入图像,而是在运行时将它们提供给第二个代码并追加。我需要一个想法如何做到这一点。我正在考虑克隆()函数,构建图像索引,但我不确定,我需要你的反馈。
// First Code
$text = "Some sample senetnces";
$words = explode(' ', $text);
$imageout = new \Imagick();
foreach ($words as $no => $word)
{
$draw = new \ImagickDraw();
# $draw->setStrokeColor($strokeColor);
$draw->setFillColor('black');
# $draw->setStrokeWidth(2);
$draw->setFontSize(36);
$draw->setFont(DOCROOT . "/Congenial-Bold.ttf");
$draw->annotation(50, 50, $word);
$imagick = new \Imagick();
$imagick->newImage(500, 300, 'DeepSkyBlue');
$imagick->setImageFormat("png");
$imagick->drawImage($draw);
$imagick->trimImage(0);
$imagick->setImageBackgroundColor('DeepSkyBlue');
$imagick->spliceImage(10, 0, $imagick->getImageWidth(), $imagick->getImageHeight());
$imagick->writeImage(DOCROOT . '/tem634/fonts-' . $no . '.png');
# $images[] = $imagick->Clone();
}
// Second Code
$images = glob( DOCROOT . "/tem634/*.png");
$canvas = new Imagick();
foreach ($images as $image) {
$im = new Imagick($image);
$canvas->addImage($im);
}
// append the images into one
$canvas->resetIterator();
$combined = $canvas->appendImages(false);
$combined->setImageformat("png");
$combined->writeImage(DOCROOT . '/append.png');