Blame view
sources/lib/private/preview/svg.php
1.23 KB
|
31b7f2792
|
1 2 3 4 5 6 7 8 |
<?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. */ namespace OC\Preview; |
|
6d9380f96
|
9 |
use Imagick; |
|
31b7f2792
|
10 |
if (extension_loaded('imagick')) {
|
|
6d9380f96
|
11 |
$checkImagick = new Imagick(); |
|
31b7f2792
|
12 |
|
|
6d9380f96
|
13 |
if(count($checkImagick->queryFormats('SVG')) === 1) {
|
|
31b7f2792
|
14 |
|
|
6d9380f96
|
15 |
class SVG extends Provider {
|
|
31b7f2792
|
16 |
|
|
6d9380f96
|
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
public function getMimeType() {
return '/image\/svg\+xml/';
}
public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) {
try{
$svg = new Imagick();
$svg->setBackgroundColor(new \ImagickPixel('transparent'));
$content = stream_get_contents($fileview->fopen($path, 'r'));
if(substr($content, 0, 5) !== '<?xml') {
$content = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>' . $content;
}
$svg->readImageBlob($content);
$svg->setImageFormat('png32');
} catch (\Exception $e) {
\OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
return false;
|
|
31b7f2792
|
36 |
} |
|
31b7f2792
|
37 |
|
|
6d9380f96
|
38 39 40 41 42 43 |
//new image object $image = new \OC_Image(); $image->loadFromData($svg); //check if image object is valid return $image->valid() ? $image : false; } |
|
31b7f2792
|
44 |
|
|
31b7f2792
|
45 |
} |
|
31b7f2792
|
46 |
|
|
6d9380f96
|
47 48 49 |
\OC\Preview::registerProvider('OC\Preview\SVG');
}
}
|