diff options
author | habeascodice <habeascodice@federated.social> | 2014-10-07 22:35:02 -0700 |
---|---|---|
committer | habeascodice <habeascodice@federated.social> | 2014-10-07 22:35:02 -0700 |
commit | 737a3362d50900a5f26aada14f515c5c857a762f (patch) | |
tree | ae8337e97dd3ae5356daefa0c0da2812511341a0 /include/photo | |
parent | f84453497bd5ef4eba8bca84917b8e82d784937a (diff) | |
parent | ee6c53c2e54619a39e16ac2176835adea3b73778 (diff) | |
download | volse-hubzilla-737a3362d50900a5f26aada14f515c5c857a762f.tar.gz volse-hubzilla-737a3362d50900a5f26aada14f515c5c857a762f.tar.bz2 volse-hubzilla-737a3362d50900a5f26aada14f515c5c857a762f.zip |
Merge remote branch 'upstream/master'
Diffstat (limited to 'include/photo')
-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 15eac5a6d..0853ce84e 100644 --- a/include/photo/photo_driver.php +++ b/include/photo/photo_driver.php @@ -513,19 +513,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(); |