Доберитесь удаленное изображение с помощью ЗАВИХРЕНИЯ затем передискретизируют

Я хочу смочь получить удаленное изображение от веб-сервера, передискретизировать его, и затем служить ему до браузера И сохранить его в файл. Вот то, что я имею до сих пор:

$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "$rURL");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
$out = curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);

$imgRes = imagecreatefromstring($out);
imagejpeg($imgRes, $filename, 70);

header("Content-Type: image/jpg");
imagejpeg($imgRes, NULL, 70);
exit();

Обновление

Обновленный для отражения корректного ответа на основе обсуждения ниже

6
задан Chris 13 April 2010 в 12:46
поделиться

1 ответ

Вы можете извлечь файл в ресурс GD, используя imagecreatefromstring () :

imagecreatefromstring () возвращает идентификатор изображения, представляющий изображение, полученное из заданных данных. Эти типы будут автоматически обнаружены, если ваша сборка PHP их поддерживает: JPEG, PNG, GIF, WBMP и GD2.

оттуда довольно просто использовать imagecopyresampled () .

Выведите его, используя imagejpeg () или любой другой формат вывода, который вам больше подходит.

Сделайте один вывод с именем файла:

imagejpeg($image_resource, "/path/to/image.jpg");

затем отправьте тот же ресурс в браузер:

header("Content-type: image/jpeg");
imagejpeg($image_resource);

в зависимости от формата изображения вы можете вместо этого использовать функции imagepng () или imagegif ().

Возможно, вы захотите работать с разными форматами вывода в зависимости от типа входного файла. Вы можете получить тип входного файла с помощью getimagesize () .

Помните, что вы можете настроить качество результирующего изображения JPEG с помощью параметра $ quality . По умолчанию 75%, что может выглядеть довольно паршиво.

4
ответ дан 17 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: