From 7f61535a1a51becd984289455dc3df97a8985996 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Thu, 3 Dec 2020 19:50:45 +0100 Subject: [PATCH] GD images Signed-off-by: Roeland Jago Douma --- lib/private/legacy/OC_Image.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/private/legacy/OC_Image.php b/lib/private/legacy/OC_Image.php index 3e9812c99f..523468701c 100644 --- a/lib/private/legacy/OC_Image.php +++ b/lib/private/legacy/OC_Image.php @@ -98,7 +98,14 @@ class OC_Image implements \OCP\IImage { * @return bool */ public function valid() { // apparently you can't name a method 'empty'... - return is_resource($this->resource); + if (is_resource($this->resource)) { + return true; + } + if (is_object($this->resource) && get_class($this->resource) === 'GdImage') { + return true; + } + + return false; } /** @@ -305,7 +312,13 @@ class OC_Image implements \OCP\IImage { * @throws \InvalidArgumentException in case the supplied resource does not have the type "gd" */ public function setResource($resource) { - if (get_resource_type($resource) === 'gd') { + // For PHP<8 + if (is_resource($resource) && get_resource_type($resource) === 'gd') { + $this->resource = $resource; + return; + } + // PHP 8 has real objects for GD stuff + if (is_object($resource) && get_class($resource) === 'GdImage') { $this->resource = $resource; return; }