Blame view

sources/lib/private/preview/svg.php 1.23 KB
31b7f2792   Kload   Upgrade to ownclo...
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   Cédric Dupont   Update sources OC...
9
  use Imagick;
31b7f2792   Kload   Upgrade to ownclo...
10
  if (extension_loaded('imagick')) {
6d9380f96   Cédric Dupont   Update sources OC...
11
  	$checkImagick = new Imagick();
31b7f2792   Kload   Upgrade to ownclo...
12

6d9380f96   Cédric Dupont   Update sources OC...
13
  	if(count($checkImagick->queryFormats('SVG')) === 1) {
31b7f2792   Kload   Upgrade to ownclo...
14

6d9380f96   Cédric Dupont   Update sources OC...
15
  		class SVG extends Provider {
31b7f2792   Kload   Upgrade to ownclo...
16

6d9380f96   Cédric Dupont   Update sources OC...
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   Kload   Upgrade to ownclo...
36
  				}
31b7f2792   Kload   Upgrade to ownclo...
37

6d9380f96   Cédric Dupont   Update sources OC...
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   Kload   Upgrade to ownclo...
44

31b7f2792   Kload   Upgrade to ownclo...
45
  		}
31b7f2792   Kload   Upgrade to ownclo...
46

6d9380f96   Cédric Dupont   Update sources OC...
47
48
49
  		\OC\Preview::registerProvider('OC\Preview\SVG');
  	}
  }