aboutsummaryrefslogtreecommitdiffstats
path: root/include/photo/photo_driver.php
diff options
context:
space:
mode:
authorhabeascodice <habeascodice@federated.social>2014-10-07 22:35:02 -0700
committerhabeascodice <habeascodice@federated.social>2014-10-07 22:35:02 -0700
commit737a3362d50900a5f26aada14f515c5c857a762f (patch)
treeae8337e97dd3ae5356daefa0c0da2812511341a0 /include/photo/photo_driver.php
parentf84453497bd5ef4eba8bca84917b8e82d784937a (diff)
parentee6c53c2e54619a39e16ac2176835adea3b73778 (diff)
downloadvolse-hubzilla-737a3362d50900a5f26aada14f515c5c857a762f.tar.gz
volse-hubzilla-737a3362d50900a5f26aada14f515c5c857a762f.tar.bz2
volse-hubzilla-737a3362d50900a5f26aada14f515c5c857a762f.zip
Merge remote branch 'upstream/master'
Diffstat (limited to 'include/photo/photo_driver.php')
-rw-r--r--include/photo/photo_driver.php31
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();