There have been some conversations in the last weeks which explained several parts of the code, so add it to the source code documentation. Also some other small source code documentation improvements.
57 lines
1.2 KiB
PHP
57 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace Zotlabs\Thumbs;
|
|
|
|
require_once 'library/epub-meta/epub.php';
|
|
|
|
/**
|
|
* @brief Thumbnail creation for epub files.
|
|
*
|
|
*/
|
|
class Epubthumb {
|
|
|
|
/**
|
|
* @brief Match for application/epub+zip.
|
|
*
|
|
* @param string $type MimeType
|
|
* @return boolean
|
|
*/
|
|
function Match($type) {
|
|
return(($type === 'application/epub+zip') ? true : false );
|
|
}
|
|
|
|
/**
|
|
* @brief
|
|
*
|
|
* @param array $attach
|
|
* @param number $preview_style unused
|
|
* @param number $height (optional) default 300
|
|
* @param number $width (optional) default 300
|
|
*/
|
|
function Thumb($attach, $preview_style, $height = 300, $width = 300) {
|
|
|
|
$photo = false;
|
|
|
|
$ep = new \EPub(dbunescbin($attach['content']));
|
|
$data = $ep->Cover();
|
|
|
|
if($data['found']) {
|
|
$photo = $data['data'];
|
|
}
|
|
|
|
if($photo) {
|
|
$image = imagecreatefromstring($photo);
|
|
$dest = imagecreatetruecolor($width, $height);
|
|
$srcwidth = imagesx($image);
|
|
$srcheight = imagesy($image);
|
|
|
|
imagealphablending($dest, false);
|
|
imagesavealpha($dest, true);
|
|
imagecopyresampled($dest, $image, 0, 0, 0, 0, $width, $height, $srcwidth, $srcheight);
|
|
imagedestroy($image);
|
|
imagejpeg($dest, dbunescbin($attach['content']) . '.thumb');
|
|
}
|
|
}
|
|
}
|
|
|