diff options
Diffstat (limited to 'lib/private/Avatar.php')
-rw-r--r-- | lib/private/Avatar.php | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/private/Avatar.php b/lib/private/Avatar.php index afa9118c509..ce3fcff396e 100644 --- a/lib/private/Avatar.php +++ b/lib/private/Avatar.php @@ -117,7 +117,24 @@ class Avatar implements IAvatar { $img = $data; $data = $img->data(); } else { - $img = new OC_Image($data); + $img = new OC_Image(); + if (is_resource($data) && get_resource_type($data) === "gd") { + $img->setResource($data); + } elseif(is_resource($data)) { + $img->loadFromFileHandle($data); + } else { + try { + // detect if it is a path or maybe the images as string + $result = @realpath($data); + if ($result === false || $result === null) { + $img->loadFromData($data); + } else { + $img->loadFromFile($data); + } + } catch (\Error $e) { + $img->loadFromData($data); + } + } } $type = substr($img->mimeType(), -3); if ($type === 'peg') { |