streams/Zotlabs/Thumbs/Epubthumb.php

62 lines
1.2 KiB
PHP
Raw Normal View History

2017-11-21 22:30:26 +00:00
<?php
namespace Zotlabs\Thumbs;
require_once 'library/epub-meta/epub.php';
2017-11-21 22:30:26 +00:00
2019-07-08 06:35:24 +00:00
use Epub;
/**
* @brief Thumbnail creation for epub files.
*
*/
2017-11-21 22:30:26 +00:00
class Epubthumb {
/**
* @brief Match for application/epub+zip.
*
* @param string $type MimeType
* @return boolean
*/
2017-11-21 22:30:26 +00:00
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) {
2017-11-21 22:30:26 +00:00
$photo = false;
2019-07-08 06:35:24 +00:00
$ep = new EPub(dbunescbin($attach['content']));
2017-11-21 22:30:26 +00:00
$data = $ep->Cover();
2019-07-08 06:35:24 +00:00
if ($data['found']) {
2017-11-21 22:30:26 +00:00
$photo = $data['data'];
}
2019-07-08 06:35:24 +00:00
if ($photo) {
2017-11-21 22:30:26 +00:00
$image = imagecreatefromstring($photo);
$dest = imagecreatetruecolor($width, $height);
$srcwidth = imagesx($image);
$srcheight = imagesy($image);
2017-11-21 22:30:26 +00:00
imagealphablending($dest, false);
2017-11-21 22:30:26 +00:00
imagesavealpha($dest, true);
imagecopyresampled($dest, $image, 0, 0, 0, 0, $width, $height, $srcwidth, $srcheight);
imagedestroy($image);
imagejpeg($dest, dbunescbin($attach['content']) . '.thumb');
2017-11-21 22:30:26 +00:00
}
}
}