Factorize the thumbnail generation and move it to the class Book. re #127

This commit is contained in:
Sébastien Lucas 2013-12-14 21:49:55 +01:00
parent 5a6d44a158
commit b0660b0814
2 changed files with 90 additions and 50 deletions

View file

@ -440,6 +440,42 @@ class Book extends Base {
} }
} }
public function getThumbnail ($width, $height) {
if (is_null ($width) && is_null ($height)) {
return false;
}
$file = $this->getFilePath ("jpg");
// get image size
if ($size = GetImageSize($file)) {
$w = $size[0];
$h = $size[1];
//set new size
if (!is_null ($width)) {
$nw = $width;
if ($nw > $w) { return false; }
$nh = ($nw*$h)/$w;
} else {
$nh = $height;
if ($nh > $h) { return false; }
$nw = ($nh*$w)/$h;
}
}
else{
//set new size
$nw = "160";
$nh = "120";
}
//draw the image
$src_img = imagecreatefromjpeg($file);
$dst_img = imagecreatetruecolor($nw,$nh);
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $nw, $nh, $w, $h);//resizing the image
imagejpeg($dst_img,null,80);
imagedestroy($src_img);
imagedestroy($dst_img);
return true;
}
public function getLinkArray () public function getLinkArray ()
{ {
$linkArray = array(); $linkArray = array();

104
fetch.php
View file

@ -63,58 +63,62 @@ function notFound () {
{ {
case "jpg": case "jpg":
header("Content-Type: image/jpeg"); header("Content-Type: image/jpeg");
if (isset($_GET["width"])) if ($book->getThumbnail (getURLParam ("width"), getURLParam ("height"))) {
{ // The cover had to be resized
$file = $book->getFilePath ($type);
// get image size
if ($size = GetImageSize($file)) {
$w = $size[0];
$h = $size[1];
//set new size
$nw = $_GET["width"];
if ($nw > $w) { break; }
$nh = ($nw*$h)/$w;
}
else{
//set new size
$nw = "160";
$nh = "120";
}
//draw the image
$src_img = imagecreatefromjpeg($file);
$dst_img = imagecreatetruecolor($nw,$nh);
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $nw, $nh, $w, $h);//resizing the image
imagejpeg($dst_img,null,80);
imagedestroy($src_img);
imagedestroy($dst_img);
return;
}
if (isset($_GET["height"]))
{
$file = $book->getFilePath ($type);
// get image size
if ($size = GetImageSize($file)) {
$w = $size[0];
$h = $size[1];
//set new size
$nh = $_GET["height"];
if ($nh > $h) { break; }
$nw = ($nh*$w)/$h;
}
else{
//set new size
$nw = "160";
$nh = "120";
}
//draw the image
$src_img = imagecreatefromjpeg($file);
$dst_img = imagecreatetruecolor($nw,$nh);
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $nw, $nh, $w, $h);//resizing the image
imagejpeg($dst_img,null,80);
imagedestroy($src_img);
imagedestroy($dst_img);
return; return;
} }
// if (isset($_GET["width"]))
// {
// $file = $book->getFilePath ($type);
// // get image size
// if ($size = GetImageSize($file)) {
// $w = $size[0];
// $h = $size[1];
// //set new size
// $nw = $_GET["width"];
// if ($nw > $w) { break; }
// $nh = ($nw*$h)/$w;
// }
// else{
// //set new size
// $nw = "160";
// $nh = "120";
// }
// //draw the image
// $src_img = imagecreatefromjpeg($file);
// $dst_img = imagecreatetruecolor($nw,$nh);
// imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $nw, $nh, $w, $h);//resizing the image
// imagejpeg($dst_img,null,80);
// imagedestroy($src_img);
// imagedestroy($dst_img);
// return;
// }
// if (isset($_GET["height"]))
// {
// $file = $book->getFilePath ($type);
// // get image size
// if ($size = GetImageSize($file)) {
// $w = $size[0];
// $h = $size[1];
// //set new size
// $nh = $_GET["height"];
// if ($nh > $h) { break; }
// $nw = ($nh*$w)/$h;
// }
// else{
// //set new size
// $nw = "160";
// $nh = "120";
// }
// //draw the image
// $src_img = imagecreatefromjpeg($file);
// $dst_img = imagecreatetruecolor($nw,$nh);
// imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $nw, $nh, $w, $h);//resizing the image
// imagejpeg($dst_img,null,80);
// imagedestroy($src_img);
// imagedestroy($dst_img);
// return;
// }
break; break;
default: default:
header("Content-Type: " . Data::$mimetypes[$type]); header("Content-Type: " . Data::$mimetypes[$type]);