diff options
author | friendica <info@friendica.com> | 2014-10-07 21:16:30 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2014-10-07 21:16:30 -0700 |
commit | ee6c53c2e54619a39e16ac2176835adea3b73778 (patch) | |
tree | ff47fc99aefab0c12acdc152da514ebe34a54fe5 /include | |
parent | 2975c6dd43715326b17178d1eb1fd6ded40e1745 (diff) | |
download | volse-hubzilla-ee6c53c2e54619a39e16ac2176835adea3b73778.tar.gz volse-hubzilla-ee6c53c2e54619a39e16ac2176835adea3b73778.tar.bz2 volse-hubzilla-ee6c53c2e54619a39e16ac2176835adea3b73778.zip |
add imagick version check when guessing mimetype. It probably isn't important here, but let's make sure we have the right driver installed if we do something else with photos afterward.
Diffstat (limited to 'include')
-rw-r--r-- | include/photo/photo_driver.php | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php index 42997060b..c416c0df3 100644 --- a/include/photo/photo_driver.php +++ b/include/photo/photo_driver.php @@ -512,19 +512,30 @@ function guess_image_type($filename, $headers = '') { $type = $hdrs['Content-Type']; } if (is_null($type)){ -// FIXME!!!! + $ignore_imagick = get_config('system', 'ignore_imagick'); // Guessing from extension? Isn't that... dangerous? if(class_exists('Imagick') && !$ignore_imagick) { - logger('using imagemagick', LOGGER_DEBUG); - /** - * Well, this not much better, - * but at least it comes from the data inside the image, - * we won't be tricked by a manipulated extension - */ - $image = new Imagick($filename); - $type = $image->getImageMimeType(); - } else { + $v = Imagick::getVersion(); + preg_match('/ImageMagick ([0-9]+\.[0-9]+\.[0-9]+)/', $v['versionString'], $m); + if(version_compare($m[1],'6.6.7') >= 0) { + /** + * Well, this not much better, + * but at least it comes from the data inside the image, + * we won't be tricked by a manipulated extension + */ + $image = new Imagick($filename); + $type = $image->getImageMimeType(); + } + else { + // earlier imagick versions have issues with scaling png's + // don't log this because it will just fill the logfile. + // leave this note here so those who are looking for why + // we aren't using imagick can find it + } + } + + if(is_null($type)) { $ext = pathinfo($filename, PATHINFO_EXTENSION); $ph = photo_factory(''); $types = $ph->supportedTypes(); |