title = htmlentities($title); $result->descr = htmlentities($desc); $result->img = null; return $result; } public static function fromJson($data) { $result = new Flammenkuchen(); $result->title = $data->title; $result->descr = $data->desc; $result->img = imagecreatefromstring(base64_decode($data->img)); return $result; } public function toJson() { ob_start(); imagejpeg($this->img); $imageEncoded = base64_encode(ob_get_clean()); return json_encode(array( "title" => $this->title ,"desc" => $this->descr ,"img" => $imageEncoded )); } public function getTitle() { return $this->title; } public function getDescription() { return $this->descr; } public function getImageJpeg() { return $this->img; } public function imageMd5() { ob_start(); imagejpeg($this->img); return md5(base64_encode(ob_get_clean())); } public function createImage($type, $tmpFile) { $supported_files = array("image/png", "image/jpg", "image/jpeg"); if (!in_array($type, $supported_files)) return "Invalid file format: ".$type; $imageSize = getimagesize($tmpFile); if ($imageSize[0] > MAXSIZE || $imageSize[1] > MAXSIZE) { $newSize = array(-1, -1); if ($imageSize[0] > $imageSize[1]) $newSize = array(MAXSIZE, $imageSize[1] * MAXSIZE / $imageSize[0]); else $newSize = array($imageSize[0] * MAXSIZE / $imageSize[1], MAXSIZE); $imgOrigin = $this->createImageFromType($type, $tmpFile); if ($imgOrigin === false) return "Error reading input file"; $this->img = imagecreatetruecolor($newSize[0], $newSize[1]); imagecopyresampled( $this->img, $imgOrigin, // image ressources 0, 0, 0, 0, // Start coordinates $newSize[0], $newSize[1], // new file size $imageSize[0], $imageSize[1]); // actual origin size if ($this->img === false) return "Error resizing image"; } else $this->img = $this->createImageFromType($type, $tmpFile); return true; } private function createImageFromType($type, $tmpFile) { if ($type == "image/png") return imagecreatefrompng($tmpFile); else if ($type == "image/jpg" || $type == "image/jpeg") return imagecreatefromjpeg($tmpFile); return false; } }