diff options
author | Georg Ehrke <georg@ownCloud.com> | 2013-05-28 11:29:01 +0200 |
---|---|---|
committer | Georg Ehrke <georg@ownCloud.com> | 2013-05-28 11:29:01 +0200 |
commit | 5ae1333c76fd1331e21fff0fc7343888c473c8d4 (patch) | |
tree | 6fcb3605752c4d8043f3490937c0ae22e34429f4 /lib/preview | |
parent | 707f52f1dbb063595541331f94b3796f0f96ce9a (diff) | |
download | nextcloud-server-5ae1333c76fd1331e21fff0fc7343888c473c8d4.tar.gz nextcloud-server-5ae1333c76fd1331e21fff0fc7343888c473c8d4.zip |
add preview backend for text based files
Diffstat (limited to 'lib/preview')
-rw-r--r-- | lib/preview/txt.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/preview/txt.php b/lib/preview/txt.php new file mode 100644 index 00000000000..2b5d8edb893 --- /dev/null +++ b/lib/preview/txt.php @@ -0,0 +1,49 @@ +<?php +/** + * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ +class OC_Preview_TXT extends OC_Preview_Provider{ + + public function getMimeType(){ + return '/text\/.*/'; + } + + public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { + $content = $fileview->fopen($path, 'r'); + $content = stream_get_contents($content); + + $lines = preg_split("/\r\n|\n|\r/", $content); + $numoflines = count($lines); + + $fontsize = 5; //5px + $linesize = ceil($fontsize * 1.25); + + $image = imagecreate($maxX, $maxY); + $imagecolor = imagecolorallocate($image, 255, 255, 255); + $textcolor = imagecolorallocate($image, 0, 0, 0); + + foreach($lines as $index => $line){ + $index = $index + 1; + + $x = (int) 1; + $y = (int) ($index * $linesize) - $fontsize; + + imagestring($image, 1, $x, $y, $line, $textcolor); + + if(($index * $linesize) >= $maxY){ + break; + } + } + + $image = new \OC_Image($image); + + if (!$image->valid()) return false; + + return $image; + } +} + +OC_Preview::registerProvider('OC_Preview_TXT');
\ No newline at end of file |