Files
fdn2/public/getImage.php
T

68 lines
1.5 KiB
PHP

<?php
/*
Author: Riccardo Di Dato
Creation Date: 14/gen/2016
*/
require_once(dirname(__FILE__)."/load.php");
$sizes = array(
"large"=>array("width"=>800,"height"=>600),
"small"=>array("width"=>160,"height"=>120)
);
if (array_key_exists("id",$_GET)) {
if (array_key_exists('size',$_GET)){
$size=$_GET['size'];
}
else {
$size = "original";
}
if (!array_key_exists($size, $sizes) || strcmp("original", $size)==0){
$size = null;
}
$img = GlobalVariables::get("dao")->getFirst("MediaModel",array("id"=>$_GET['id']));
if (!is_null($img)){
$basepath = GlobalVariables::get("config")->paths->media;
$toMime = $basepath."/".$img->id.".".$img->extension;
$thumb = new Imagick($basepath."/".$img->id.".".$img->extension);
$geom = $thumb->getimagegeometry();
if($img->extension != "gif"){
if (!is_null($size)){
if ($geom["width"]>=$geom["height"]){
$thumb->scaleimage($sizes[$size]["width"], 0,false);
}
else {
$thumb->scaleimage(0, $sizes[$size]["height"],false);
}
}
header('Content-type: '.mime_content_type($toMime));
echo $thumb;
}
else{
$thumb = $thumb->coalesceimages();
if (!is_null($size)){
foreach ($thumb as $frame){
if ($geom["width"]>=$geom["height"]){
$thumb->scaleimage($sizes[$size]["width"], 0,false);
}
else {
$thumb->scaleimage(0, $sizes[$size]["height"],false);
}
}
}
$thumb = $thumb->deconstructimages();
header('Content-type: '.mime_content_type($toMime));
echo $thumb->getimagesblob();
}
}
}
?>