show(); // it´s something else. Let´s create a dummy preview }else{ header('Content-type: image/png'); OC_PreviewUnknown::getThumbnail($maxX,$maxY); } } } class OC_PreviewImage { public static function getThumbnail($path,$maxX,$maxY,$scalingup) { $thumbnails_view = new \OC_FilesystemView('/'.\OCP\User::getUser() .'/'.OC_Preview::THUMBNAILS_FOLDER); // is a preview already in the cache? if ($thumbnails_view->file_exists($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)) { return new \OC_Image($thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)); } // does the sourcefile exist? if (!\OC_Filesystem::file_exists($path)) { \OC_Log::write('Preview', 'File '.$path.' don\'t exists', \OC_Log::WARN); return false; } // open the source image $image = new \OC_Image(); $image->loadFromFile(\OC_Filesystem::getLocalFile($path)); if (!$image->valid()) return false; // fix the orientation $image->fixOrientation(); // calculate the right preview size $Xsize=$image->width(); $Ysize=$image->height(); if (($Xsize/$Ysize)>($maxX/$maxY)) { $factor=$maxX/$Xsize; } else { $factor=$maxY/$Ysize; } // only scale up if requested if($scalingup==false) { if($factor>1) $factor=1; } $newXsize=$Xsize*$factor; $newYsize=$Ysize*$factor; // resize $ret = $image->preciseResize($newXsize, $newYsize); if (!$ret) { \OC_Log::write('Preview', 'Couldn\'t resize image', \OC_Log::ERROR); unset($image); return false; } // store in cache $l = $thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup); $image->save($l); return $image; } } class OC_PreviewUnknown { public static function getThumbnail($maxX,$maxY) { // check if GD is installed if(!extension_loaded('gd') || !function_exists('gd_info')) { OC_Log::write('preview', __METHOD__.'(): GD module not installed', OC_Log::ERROR); return false; } // create a white image $image = imagecreatetruecolor($maxX, $maxY); $color = imagecolorallocate($image, 255, 255, 255); imagefill($image, 0, 0, $color); // output the image imagepng($image); imagedestroy($image); } }