diff --git a/src/Drivers/Imagick/Imagick.php b/src/Drivers/Imagick/Imagick.php index fb3a5c4..d5886ab 100644 --- a/src/Drivers/Imagick/Imagick.php +++ b/src/Drivers/Imagick/Imagick.php @@ -48,6 +48,9 @@ public function loadImageFrom(string $path): ImagickBackend if (file_exists($path)) { $imagick->readImage($path); $imagick->setImageType(defined('\Imagick::IMGTYPE_TRUECOLORALPHA') ? \Imagick::IMGTYPE_TRUECOLORALPHA : \Imagick::IMGTYPE_TRUECOLORMATTE); + } elseif (filter_var($path, FILTER_VALIDATE_URL)) { + $imagick->readImageBlob(file_get_contents($path)); + $imagick->setImageType(defined('\Imagick::IMGTYPE_TRUECOLORALPHA') ? \Imagick::IMGTYPE_TRUECOLORALPHA : \Imagick::IMGTYPE_TRUECOLORMATTE); } else { if ($this->isDataUriImage($path)) { $path = $this->decodeDataUriImage($path); diff --git a/tests/DriverTest.php b/tests/DriverTest.php index 18a719f..da8d588 100644 --- a/tests/DriverTest.php +++ b/tests/DriverTest.php @@ -772,3 +772,15 @@ function (Text $text) { ->imageSimilarTo($expected, 95); unlink($out); })->with('drivers', 'fruit'); + +it('returns an http response', function ($driver, $file) { + prepare($this, '_', $driver); + $response = Image::make($file, $driver)->response(); + expect($response->getStatusCode())->toBe(200); +})->with('drivers', 'tile'); + +it('can open a remote image', function ($driver) { + prepare($this, '_', $driver); + $image = Image::make('https://via.placeholder.com/150', $driver); + expect($image->width())->toBe(150)->and($image->height())->toBe(150); +})->with('drivers');