1
0
mirror of https://github.com/e107inc/e107.git synced 2025-03-14 01:19:44 +01:00

Issue #4270 - WebP support.

This commit is contained in:
Cameron 2020-12-07 10:48:12 -08:00
parent 111cad6307
commit ca1df9d4f3
5 changed files with 57 additions and 16 deletions

View File

@ -4638,7 +4638,7 @@ class e_parser
$path = null;
$file = trim($file);
$ext = pathinfo($file, PATHINFO_EXTENSION);
$accepted = array('jpg','gif','png','jpeg', 'svg');
$accepted = array('jpg','gif','png','jpeg', 'svg', 'webp');
if(!in_array($ext,$accepted))

View File

@ -536,6 +536,7 @@ class e_thumbnail
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'png' => 'image/png',
'webp' => 'image/webp',
//'bmp' => 'image/bmp',
);

View File

@ -556,8 +556,9 @@ class e_file
}
/**
* @param string $address
* @param string $address
* @param array|null $options
* @return CurlHandle|false|resource
*/
function initCurl($address, $options =null)
{
@ -1720,7 +1721,7 @@ class e_file
unlink(e_TEMP.$localfile);
}
$result = $this->getRemoteFile($remotefile, $localfile, 'temp');
$result = $this->getRemoteFile($remotefile, $localfile);
if($result === false)
{
@ -2023,6 +2024,7 @@ class e_file
case 'wbmp':
case 'xbm':
case 'ico':
case 'webp':
$ret = $this->getImageMime($filename);
@ -2061,6 +2063,7 @@ class e_file
case 'mov': //media
case 'avi': //media
case 'xml':
case 'webm':
break; // Just accept these
@ -2085,12 +2088,12 @@ class e_file
}
/**
* New in v2.1.9
* Check filename or path against filetypes.xml
* @param $file - real path to file.
*
* @param $file - real path to file.
* @param string $targetFile
* @return boolean
*/
public function isAllowedType($file,$targetFile='')
@ -2153,7 +2156,8 @@ class e_file
'image/iff' => array('iff'),
'image/vnd.wap.wbmp' => array('wbmp'),
'image/xbm' => array('xbm'),
'image/vnd.microsoft.icon' => array('ico')
'image/vnd.microsoft.icon' => array('ico'),
'image/webp' => array('webp'),
);
$ret = image_type_to_mime_type(exif_imagetype($filename));
@ -2203,7 +2207,7 @@ class e_file
$xml = e107::getXml();
$xml->setOptArrayTags('class'); // class tag should be always array
$temp_vars = $xml->loadXMLfile(e_SYSTEM."filetypes.xml", 'filetypes', false);
$temp_vars = $xml->loadXMLfile(e_SYSTEM."filetypes.xml", 'filetypes');
if ($temp_vars === false)
{

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

View File

@ -149,6 +149,14 @@
// 'c' => 'r', // crop right
),
// Test WebP format resize.
16 => array (
'src' => 'e_PLUGIN/gallery/images/beach.webp',
'aw' => 455,
'ah' => 0,
),
);
@ -172,7 +180,14 @@
// $actual = getimagesize($generatedImage);
// $expected = getimagesize($storedImage);
if($status === false)
{
rename($generatedImage,codecept_output_dir()."sendImage_".time()."_index_".$index.".".$ext);
}
$this->assertTrue($status, "Image Index #".$index." failed the image-comparison check");
}
}
@ -210,6 +225,12 @@ class compareImages
case 'image/png':
$return[] = 'png';
return $return;
case 'image/webp':
$return[] = 'webp';
return $return;
case 'image/gif':
$return[] = 'gif';
return $return;
default:
return false;
}
@ -219,14 +240,29 @@ class compareImages
{
/*retuns image resource or false if its not jpg or png*/
$mime = $this->mimeType($i);
if ($mime[2] == 'jpg') {
return imagecreatefromjpeg($i);
} else
if ($mime[2] == 'png') {
return imagecreatefrompng($i);
} else {
return false;
}
switch($mime[2])
{
case "jpg":
return imagecreatefromjpeg($i);
break;
case "png":
return imagecreatefrompng($i);
break;
case "gif":
return imagecreatefromgif($i);
break;
case "webp":
return imagecreatefromwebp($i);
break;
default:
return false;
}
}
private function resizeImage($source)