2 PHP Imagick代码合二为一

时间:2015-11-07 05:10:13

标签: php imagemagick

我正在尝试将两个小的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');

0 个答案:

没有答案