webp images support

This commit is contained in:
yuri
2018-12-26 13:48:13 +02:00
parent af9718951f
commit 3fb57a1dbe
4 changed files with 28 additions and 22 deletions
+8
View File
@@ -42,6 +42,7 @@ class Image extends \Espo\Core\EntryPoints\Base
'image/jpeg',
'image/png',
'image/gif',
'image/webp',
];
protected $imageSizes = [
@@ -134,6 +135,9 @@ class Image extends \Espo\Core\EntryPoints\Base
case 'image/gif':
imagegif($targetImage);
break;
case 'image/webp':
imagewebp($targetImage);
break;
}
$contents = ob_get_contents();
ob_end_clean();
@@ -214,6 +218,10 @@ class Image extends \Espo\Core\EntryPoints\Base
$sourceImage = imagecreatefromgif($filePath);
imagecopyresampled($targetImage, $sourceImage, 0, 0, 0, 0, $targetWidth, $targetHeight, $originalWidth, $originalHeight);
break;
case 'image/webp':
$sourceImage = imagecreatefromwebp($filePath);
imagecopyresampled($targetImage, $sourceImage, 0, 0, 0, 0, $targetWidth, $targetHeight, $originalWidth, $originalHeight);
break;
}
if (in_array($fileType, $this->fixOrientationFileTypeList)) {
+10 -2
View File
@@ -44,6 +44,13 @@ class Attachment extends Record
protected $inlineAttachmentFieldTypeList = ['wysiwyg'];
protected $imageTypeList = [
'image/png',
'image/jpeg',
'image/gif',
'image/webp',
];
public function upload($fileData)
{
if (!$this->getAcl()->checkScope('Attachment', 'create')) {
@@ -322,7 +329,8 @@ class Attachment extends Record
'png' => 'image/png',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'gif' => 'image/gif'
'gif' => 'image/gif',
'webp' => 'image/webp',
];
$extension = preg_replace('#\?.*#', '', pathinfo($url, \PATHINFO_EXTENSION));
@@ -334,7 +342,7 @@ class Attachment extends Record
if (!$type) return;
if (!in_array($type, ['image/png', 'image/jpeg', 'image/gif'])) {
if (!in_array($type, $this->imageTypeList)) {
return;
}
+5 -10
View File
@@ -56,6 +56,7 @@ Espo.define('views/fields/attachment-multiple', 'views/fields/base', function (D
'image/jpeg',
'image/png',
'image/gif',
'image/webp',
],
validations: ['ready', 'required'],
@@ -284,11 +285,8 @@ Espo.define('views/fields/attachment-multiple', 'views/fields/base', function (D
var preview = name;
switch (type) {
case 'image/png':
case 'image/jpeg':
case 'image/gif':
preview = '<img src="' + this.getImageUrl(id, 'small') + '" title="' + name + '">';
if (~this.previewTypeList.indexOf(type)) {
preview = '<img src="' + this.getImageUrl(id, 'small') + '" title="' + name + '">';
}
return preview;
@@ -490,11 +488,8 @@ Espo.define('views/fields/attachment-multiple', 'views/fields/base', function (D
},
isTypeIsImage: function (type) {
switch (type) {
case 'image/png':
case 'image/jpeg':
case 'image/gif':
return true;
if (~this.previewTypeList.indexOf(type)) {
return true;
}
return false
},
+5 -10
View File
@@ -46,6 +46,7 @@ Espo.define('views/fields/file', 'views/fields/link', function (Dep) {
'image/jpeg',
'image/png',
'image/gif',
'image/webp',
],
defaultType: false,
@@ -247,11 +248,8 @@ Espo.define('views/fields/file', 'views/fields/link', function (Dep) {
name = Handlebars.Utils.escapeExpression(name);
var preview = name;
switch (type) {
case 'image/png':
case 'image/jpeg':
case 'image/gif':
preview = '<a data-action="showImagePreview" data-id="' + id + '" href="' + this.getImageUrl(id) + '"><img src="'+this.getBasePath()+'?entryPoint=image&size='+this.previewSize+'&id=' + id + '" class="image-preview"></a>';
if (~this.previewTypeList.indexOf(type)) {
preview = '<a data-action="showImagePreview" data-id="' + id + '" href="' + this.getImageUrl(id) + '"><img src="'+this.getBasePath()+'?entryPoint=image&size='+this.previewSize+'&id=' + id + '" class="image-preview"></a>';
}
return preview;
},
@@ -260,11 +258,8 @@ Espo.define('views/fields/file', 'views/fields/link', function (Dep) {
name = Handlebars.Utils.escapeExpression(name);
var preview = name;
switch (type) {
case 'image/png':
case 'image/jpeg':
case 'image/gif':
preview = '<img src="' + this.getImageUrl(id, 'small') + '" title="' + name + '">';
if (~this.previewTypeList.indexOf(type)) {
preview = '<img src="' + this.getImageUrl(id, 'small') + '" title="' + name + '">';
}
return preview;