GetImage da testare meglio e gestisce anche le gif

This commit is contained in:
Lorenzo Giacomelli
2016-01-15 18:27:42 +01:00
parent 104e01d910
commit 8f2c8ce7f9
5 changed files with 98 additions and 80 deletions
+1 -1
View File
@@ -57,7 +57,7 @@ class MediaModel extends Model implements MediaInterface{
}
public function renderMedia(){
var_dump($this->mediaRenderer);
// var_dump($this->mediaRenderer);
$this->mediaRenderer->render();
}
@@ -1,14 +1,14 @@
<?php
class MediaYoutube implements MediaRendererInterface{
private $modelRef;
private $link;
public function __construct(MediaModel $model){
$this->modelRef = $model;
public function __construct($link){
$this->link = $link;
}
public function asText(){
return $this->modelRef->link;
return $this->link;
}
public function render(){
+2 -2
View File
@@ -24,8 +24,8 @@ class SystemController {
}
}
self::logMessage(LoggingFacility::$LEVEL_ERROR,"log.sysctl.cantexecute",$myCmd." 2>&1",true);
$catParameters=array($myCmd,$return->messages[sizeof($return->messages)-1],$return);
throw new SystemException("exc.sysctl.cantexecute",$catParameters);
// $catParameters=array($myCmd,$return->messages[sizeof($return->messages)-1],$return);
throw new SystemException("Error while executing command '".$myCmd."'. Last message '".$return->messages[sizeof($return->messages)-1]."'");
}
self::logMessage(LoggingFacility::$LEVEL_INFO,"log.sysctl.correctlyexecute",$myCmd." 2>&1",true);
+45 -36
View File
@@ -6,54 +6,63 @@ 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 = "small";
$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);
if ($size == "small"){
$thumb->thumbnailimage(0, 100);
$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;
}
header('Content-type: image/png');
echo $thumb;
//GIF LINKS
// http://stackoverflow.com/questions/20361458/php-imagick-gif-animation-is-not-preserved
// http://stackoverflow.com/questions/718491/resize-animated-gif-file-without-destroying-animation
// http://php.net/manual/en/imagick.readimageblob.php
// switch ($size){
// case "big":
// $img = ThumbnailGenerator::renderBigThumbnail($content);
// break;
// case "med":
// $img = ThumbnailGenerator::renderMediumThumbnail($content);
// break;
// case "small":
// $img = ThumbnailGenerator::renderSmallThumbnail($content);
// break;
// case "mini":
// $img = ThumbnailGenerator::renderMiniThumbnail($content);
// break;
// case "topbar":
// header("Cache-Control: no-cache, must-revalidate");
// $img = ThumbnailGenerator::renderThumbnail($content,150,0);
// break;
// default:
// $img = ThumbnailGenerator::renderOriginal($content);
// break;
// }
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();
}
}
}
?>
+46 -37
View File
@@ -8,55 +8,65 @@ require_once(dirname(__FILE__)."/load.php");
try {
$prova = new stdClass();
$prova->mediaType = MediaModel::TYPE_YOUTUBE;
$prova->link = "www.pene.com";
$media = new MediaModel($prova);
$media2= new MediaModel($prova);
// $media->renderMedia();
$media = GlobalVariables::get("dao")->getFirst("MediaModel",array("id"=>"569914c30b860ea20d8b4568"));
$news = new NotiziaModel();
// $saveable = new stdClass();
// $saveable->mediaType = MediaModel::TYPE_IMAGE;
// $media = DaoMediaHandler::createNewFileBasedMedia($saveable, "/home/lorenzo/Scrivania/giphy.gif");
$media->renderMedia();
// $prova = new stdClass();
// $prova->mediaType = MediaModel::TYPE_YOUTUBE;
// $prova->link = "www.pene.com";
// $media = new MediaModel($prova);
// $media2= new MediaModel($prova);
// // $media->renderMedia();
// $news = new NotiziaModel();
GlobalVariables::get("dao")->save($news);
GlobalVariables::get("dao")->save($media);
// GlobalVariables::get("dao")->save($news);
// GlobalVariables::get("dao")->save($media);
GlobalVariables::get("dao")->save($media2);
// GlobalVariables::get("dao")->save($media2);
DaoMediaHandler::addMedia($news, $media);
// DaoMediaHandler::addMedia($news, $media);
DaoMediaHandler::addMedia($news, $media2);
// DaoMediaHandler::addMedia($news, $media2);
// // var_dump($news);
// // echo "<br/><br/>";
// // var_dump($media);
// // echo "<br/><br/>";
// $medias = DaoMediaHandler::getMedias($news);
// // echo "medias "; PHP_EOL.var_dump($medias).PHP_EOL;
// DaoMediaHandler::setMainMediaToModel($news, $media);
// echo "<br/><br/>";
// var_dump($news);
// echo "<br/><br/>";
// var_dump($media);
// echo "<br/><br/>";
$medias = DaoMediaHandler::getMedias($news);
// echo "medias "; PHP_EOL.var_dump($medias).PHP_EOL;
DaoMediaHandler::setMainMediaToModel($news, $media);
echo "<br/><br/>";
var_dump($news);
echo "<br/><br/>";
$mainmedia = DaoMediaHandler::getMainMediaFromModel($news);
// echo "<br/><br/>";
// var_dump($mainmedia);
// echo "<br/><br/>";
DaoMediaHandler::deleteMedia($news,$media);
echo "<br><br>";
var_dump($news);
// $mainmedia = DaoMediaHandler::getMainMediaFromModel($news);
// // echo "<br/><br/>";
DaoMediaHandler::deleteMedia($news,$media2);
echo "<br><br>";
var_dump($news);
// // var_dump($mainmedia);
// // echo "<br/><br/>";
// DaoMediaHandler::deleteMedia($news,$media);
// echo "<br><br>";
// var_dump($news);
// DaoMediaHandler::deleteMedia($news,$media2);
// echo "<br><br>";
// var_dump($news);
// var_dump($media->id);
@@ -99,5 +109,4 @@ try {
catch (Exception $ex){
echo $ex->getMessage();
}
?>