Example #1
0
 public function createCollage($must, $dir = 'images', $ext = 'jpeg')
 {
     if (!is_dir($dir)) {
         $this->error = array("code" => 999, "text" => "No such directory", "method" => __METHOD__);
     } elseif (!twitterCollageMaker::checkExtension($ext)) {
         $this->error = array("code" => 999, "text" => "Incorrect extension", "method" => __METHOD__);
     }
     if ($this->isError()) {
         return json_encode($this->error);
     }
     $picture = imagecreatetruecolor($this->dimension, $this->dimension);
     foreach ($must as $one) {
         if (strpos(strtolower($one['photo']), '.jpg') || strpos(strtolower($one['photo']), '.jpeg')) {
             $item = imagecreatefromjpeg($one['photo']);
         } elseif (strpos(strtolower($one['photo']), '.png')) {
             $item = imagecreatefrompng($one['photo']);
         } elseif (strpos(strtolower($one['photo']), '.gif')) {
             $item = imagecreatefromgif($one['photo']);
         } elseif ($one['photo'] == 'color') {
             $item = imagecreatetruecolor(1, 1);
             $color = imagecolorallocate($item, rand(1, 255), rand(1, 255), rand(1, 255));
             imagefill($item, 0, 0, $color);
         } else {
             continue;
         }
         imagecopyresampled($picture, $item, $one['x'] * $this->dimension / 10, $one['y'] * $this->dimension / 10, 0, 0, $one['size'] * $this->dimension / 10, $one['size'] * $this->dimension / 10, imagesx($item), imagesy($item));
     }
     $name = $dir . "/" . time() . "." . $ext;
     imagejpeg($picture, $name);
     return json_encode(array('image' => $name));
 }