Merge pull request #10526 from steiny2k/HEICHEIF
Support HEIC for previews
This commit is contained in:
commit
bb2336f389
7 changed files with 95 additions and 0 deletions
|
@ -856,6 +856,7 @@ return array(
|
|||
'OC\\Preview\\GIF' => $baseDir . '/lib/private/Preview/GIF.php',
|
||||
'OC\\Preview\\Generator' => $baseDir . '/lib/private/Preview/Generator.php',
|
||||
'OC\\Preview\\GeneratorHelper' => $baseDir . '/lib/private/Preview/GeneratorHelper.php',
|
||||
'OC\\Preview\\HEIC' => $baseDir . '/lib/private/Preview/HEIC.php',
|
||||
'OC\\Preview\\Illustrator' => $baseDir . '/lib/private/Preview/Illustrator.php',
|
||||
'OC\\Preview\\Image' => $baseDir . '/lib/private/Preview/Image.php',
|
||||
'OC\\Preview\\JPEG' => $baseDir . '/lib/private/Preview/JPEG.php',
|
||||
|
|
|
@ -886,6 +886,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
|
|||
'OC\\Preview\\GIF' => __DIR__ . '/../../..' . '/lib/private/Preview/GIF.php',
|
||||
'OC\\Preview\\Generator' => __DIR__ . '/../../..' . '/lib/private/Preview/Generator.php',
|
||||
'OC\\Preview\\GeneratorHelper' => __DIR__ . '/../../..' . '/lib/private/Preview/GeneratorHelper.php',
|
||||
'OC\\Preview\\HEIC' => __DIR__ . '/../../..' . '/lib/private/Preview/HEIC.php',
|
||||
'OC\\Preview\\Illustrator' => __DIR__ . '/../../..' . '/lib/private/Preview/Illustrator.php',
|
||||
'OC\\Preview\\Image' => __DIR__ . '/../../..' . '/lib/private/Preview/Image.php',
|
||||
'OC\\Preview\\JPEG' => __DIR__ . '/../../..' . '/lib/private/Preview/JPEG.php',
|
||||
|
|
40
lib/private/Preview/HEIC.php
Normal file
40
lib/private/Preview/HEIC.php
Normal file
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
/**
|
||||
* @author Thomas Müller <thomas.mueller@tmit.eu>
|
||||
*
|
||||
* @copyright Copyright (c) 2018, ownCloud GmbH
|
||||
* @copyright Copyright (c) 2018, Sebastian Steinmetz (me@sebastiansteinmetz.ch)
|
||||
* @license AGPL-3.0
|
||||
*
|
||||
* This code is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License, version 3,
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License, version 3,
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OC\Preview;
|
||||
|
||||
class HEIC extends Bitmap {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function getMimeType() {
|
||||
return '/image\/hei(f|c)/';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function isAvailable(\OCP\Files\FileInfo $file) {
|
||||
return in_array("HEIC", \Imagick::queryFonts("HEI*") );
|
||||
}
|
||||
|
||||
}
|
|
@ -278,6 +278,7 @@ class PreviewManager implements IPreview {
|
|||
* - OC\Preview\JPEG
|
||||
* - OC\Preview\GIF
|
||||
* - OC\Preview\BMP
|
||||
* - OC\Preview\HEIC
|
||||
* - OC\Preview\XBitmap
|
||||
* - OC\Preview\MarkDown
|
||||
* - OC\Preview\MP3
|
||||
|
@ -310,6 +311,7 @@ class PreviewManager implements IPreview {
|
|||
Preview\JPEG::class,
|
||||
Preview\GIF::class,
|
||||
Preview\BMP::class,
|
||||
Preview\HEIC::class,
|
||||
Preview\XBitmap::class
|
||||
];
|
||||
|
||||
|
@ -370,6 +372,7 @@ class PreviewManager implements IPreview {
|
|||
'PSD' => ['mimetype' => '/application\/x-photoshop/', 'class' => Preview\Photoshop::class],
|
||||
'EPS' => ['mimetype' => '/application\/postscript/', 'class' => Preview\Postscript::class],
|
||||
'TTF' => ['mimetype' => '/application\/(?:font-sfnt|x-font$)/', 'class' => Preview\Font::class],
|
||||
'HEIC' => ['mimetype' => '/image\/hei(f|c)/', 'class' => Preview\HEIC::class],
|
||||
];
|
||||
|
||||
foreach ($imagickProviders as $queryFormat => $provider) {
|
||||
|
|
|
@ -62,6 +62,8 @@
|
|||
"gz": ["application/x-gzip"],
|
||||
"gzip": ["application/x-gzip"],
|
||||
"h": ["text/x-h"],
|
||||
"heic": ["image/heic"],
|
||||
"heif": ["image/heif"],
|
||||
"hh": ["text/x-h"],
|
||||
"hpp": ["text/x-h"],
|
||||
"htaccess": ["text/plain"],
|
||||
|
|
BIN
tests/data/testimage.heic
Normal file
BIN
tests/data/testimage.heic
Normal file
Binary file not shown.
48
tests/lib/Preview/HEICTest.php
Normal file
48
tests/lib/Preview/HEICTest.php
Normal file
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2018, Sebastian Steinmetz (me@sebastiansteinmetz.ch)
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace Test\Preview;
|
||||
|
||||
/**
|
||||
* Class BitmapTest
|
||||
*
|
||||
* @group DB
|
||||
*
|
||||
* @package Test\Preview
|
||||
*/
|
||||
class HEICTest extends Provider {
|
||||
|
||||
public function setUp() {
|
||||
if ( !in_array("HEIC", \Imagick::queryFormats("HEI*")) ) {
|
||||
$this->markTestSkipped('ImageMagick is not HEIC aware. Skipping tests');
|
||||
} else {
|
||||
parent::setUp();
|
||||
|
||||
$fileName = 'testimage.heic';
|
||||
$this->imgPath = $this->prepareTestFile($fileName, \OC::$SERVERROOT . '/tests/data/' . $fileName);
|
||||
$this->width = 1680;
|
||||
$this->height = 1050;
|
||||
$this->provider = new \OC\Preview\HEIC;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue