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)); }