From 1375ed6aea765f16ff70606187d1458ee85ea6d9 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Wed, 28 Oct 2015 20:01:50 +0100 Subject: pathinfo() does not work in this case. getimagesize() seems more reliabel. this fixes transparent png avatars having a black background. --- include/photo/photo_driver.php | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'include') diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php index 32b9bd302..d439e9877 100644 --- a/include/photo/photo_driver.php +++ b/include/photo/photo_driver.php @@ -542,6 +542,7 @@ function guess_image_type($filename, $headers = '') { } } +/* if(is_null($type)) { $ext = pathinfo($filename, PATHINFO_EXTENSION); $ph = photo_factory(''); @@ -551,6 +552,13 @@ function guess_image_type($filename, $headers = '') { if ($ext==$e) $type = $m; } } +*/ + if(is_null($type)) { + $size = getimagesize($filename); + $ph = photo_factory(''); + $types = $ph->supportedTypes(); + $type = ((array_key_exists($size['mime'], $types)) ? $size['mime'] : 'image/jpeg'); + } } logger('Photo: guess_image_type: type='.$type, LOGGER_DEBUG); return $type; -- cgit v1.2.3 From a5f1fa3168d487655d4743f7680d36d80053b34f Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Wed, 28 Oct 2015 21:52:15 +0100 Subject: re-enable pathinfo() check and try with getimagesize() if we have not got a result --- include/photo/photo_driver.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php index d439e9877..810e0cdc7 100644 --- a/include/photo/photo_driver.php +++ b/include/photo/photo_driver.php @@ -542,23 +542,22 @@ function guess_image_type($filename, $headers = '') { } } -/* if(is_null($type)) { $ext = pathinfo($filename, PATHINFO_EXTENSION); $ph = photo_factory(''); $types = $ph->supportedTypes(); - $type = "image/jpeg"; foreach ($types as $m=>$e){ if ($ext==$e) $type = $m; } } -*/ + if(is_null($type)) { $size = getimagesize($filename); $ph = photo_factory(''); $types = $ph->supportedTypes(); $type = ((array_key_exists($size['mime'], $types)) ? $size['mime'] : 'image/jpeg'); } + } logger('Photo: guess_image_type: type='.$type, LOGGER_DEBUG); return $type; -- cgit v1.2.3