Я столкнулся со следующей проблемой с этим простым фрагментом кода:
$picstream = fopen($url, 'rb');
$picture = new Imagick();
try {
$picture->readImageFile($picstream);
}
catch (ImagickExpection $e) {
echo $e->getMessage();
}
$url
переменная — это общедоступный доступный URL, который указывает на изображение в формате JPEG.
Тогда я получаю следующую ошибку:Невозможно прочитать изображение из дескриптора файла».
Странная вещь в том, что если я сделаю stream_get_contents($picstream)
а потом echo
это с Content-Type: image/jpeg
заголовки, я могу видеть изображение, так fopen
возвращает действительный ресурс.
Локальный сервер установил:
Также странно, что в окне Linux (Debian Jessie) я могу открывать URL-адреса прямо из Imagick
конструктор, а также чтение потока таким образом, но я не смог сделать это под Windows & XAMPP. Я понятия не имею, почему это происходит, поэтому не могу придумать решение лучше, чем file_put_contents
обходной путь.
Есть идеи? Некоторая неправильная конфигурация, которую я пропускаю?
Задача ещё не решена.
Других решений пока нет …