The return value is an array.
['width'] is the width of the image.
['height'] is the height of the image.
['mime'] is the mime type of the image. Resized images are always in jpeg format.
['image'] is the image data.
['ext'] is the extension of the image file.
/** * Add a cover image to the book. * If the $imageData is not set, the function assumes the $fileName is the path to the image file. * * The styling and structure of the generated XHTML is heavily inspired by the XHTML generated by Calibre. * * @param string $fileName Filename to use for the image, must be unique for the book. * @param string $imageData Binary image data * @param string $mimetype Image mimetype, such as "image/jpeg" or "image/png". * * @return bool $success */ function setCoverImage($fileName, $imageData = null, $mimetype = null) { if ($this->isFinalized || $this->isCoverImageSet || array_key_exists("CoverPage.xhtml", $this->fileList)) { return false; } if ($imageData == null) { // assume $fileName is the valid file path. if (!file_exists($fileName)) { // Attempt to locate the file using the doc root. $rp = realpath($this->docRoot . "/" . $fileName); if ($rp !== false) { // only assign the docroot path if it actually exists there. $fileName = $rp; } } $image = ImageHelper::getImage($this, $fileName); $imageData = $image['image']; $mimetype = $image['mime']; $fileName = preg_replace('#\\.[^\\.]+$#', "." . $image['ext'], $fileName); } $path = pathinfo($fileName); $imgPath = "images/" . $path["basename"]; if (empty($mimetype) && file_exists($fileName)) { /** @noinspection PhpUnusedLocalVariableInspection */ list($width, $height, $type, $attr) = getimagesize($fileName); $mimetype = image_type_to_mime_type($type); } if (empty($mimetype)) { $ext = strtolower($path['extension']); if ($ext == "jpg") { $ext = "jpeg"; } $mimetype = "image/" . $ext; } if ($this->isEPubVersion2()) { $coverPage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" . "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\n" . " \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n" . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:epub=\"http://www.idpf.org/2007/ops\" xml:lang=\"en\">\n" . "\t<head>\n" . "\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n" . $this->getViewportMetaLine() . "\t\t<title>Cover Image</title>\n" . "\t\t<link type=\"text/css\" rel=\"stylesheet\" href=\"Styles/CoverPage.css\" />\n" . "\t</head>\n" . "\t<body>\n" . "\t\t<div>\n" . "\t\t\t<img src=\"" . $imgPath . "\" alt=\"Cover image\" style=\"height: 100%\"/>\n" . "\t\t</div>\n" . "\t</body>\n" . "</html>\n"; } else { $coverPage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:epub=\"http://www.idpf.org/2007/ops\">\n" . "\t<head>\n" . "\t\t<meta http-equiv=\"Default-Style\" content=\"text/html; charset=utf-8\" />\n" . $this->getViewportMetaLine() . "\t\t<title>Cover Image</title>\n" . "\t\t<link type=\"text/css\" rel=\"stylesheet\" href=\"Styles/CoverPage.css\" />\n" . "\t</head>\n" . "\t<body>\n" . "\t\t<section epub:type=\"cover\">\n" . "\t\t\t<img src=\"" . $imgPath . "\" alt=\"Cover image\" style=\"height: 100%\"/>\n" . "\t\t</section>\n" . "\t</body>\n" . "</html>\n"; } $coverPageCss = "@page, body, div, img {\n" . "\tpadding: 0pt;\n" . "\tmargin:0pt;\n" . "}\n\nbody {\n" . "\ttext-align: center;\n" . "}\n"; $this->addCSSFile("Styles/CoverPage.css", "CoverPageCss", $coverPageCss); $this->addFile($imgPath, "CoverImage", $imageData, $mimetype); $this->addReferencePage("CoverPage", "CoverPage.xhtml", $coverPage, "cover"); $this->isCoverImageSet = true; return true; }