mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 05:55:14 +00:00
62 lines
1.4 KiB
PHP
62 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Code\Thumbs;
|
|
|
|
require_once 'library/epub-meta/epub.php';
|
|
|
|
use Epub;
|
|
|
|
/**
|
|
* @brief Thumbnail creation for epub files.
|
|
*
|
|
*/
|
|
class Epubthumb
|
|
{
|
|
|
|
/**
|
|
* @brief Match for application/epub+zip.
|
|
*
|
|
* @param string $type MimeType
|
|
* @return bool
|
|
*/
|
|
|
|
public 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
|
|
*/
|
|
|
|
public 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');
|
|
}
|
|
}
|
|
}
|