ritual
@ritual
Web-разработчик

Как получить картинку из api 2gis для обработки методом ResizeImageFile?

Задача:
Получить из статических карт 2gis картинку, изменить ее размер и положить в какую-нибудь папку на сервере.
Для работы был выбран метод CFile::ResizeImageFile. В качестве параметров метода есть $sourceFile. Там хранится путь к картинке, которую нужно изменить. Но если я туда вставляю путь до static.maps.2gis.com/1.0?zoom=15&size=500,350&mark..., то метод не срабатывает.

Можно ли как-то получить из запроса джипег, положить его на сервак, а только потом дать путь к картинке в CFile::ResizeImageFile?
Вариант сразу обращаться в 2gis за путем к картинке не рассматривается, потому что эта картинка используется в генерации PDF с помощью MPDF и картинка иногда слетает по непонятным причинам. Хочется жестко привязать картинки к серверу
  • Вопрос задан
  • 743 просмотра
Решения вопроса 1
ritual
@ritual Автор вопроса
Web-разработчик
Решение нашел сам:
Если на сервере allow_url_fopen стоит в true
//Отсюда забираем нужную картинку
$url = 'http://static.maps.2gis.com/1.0?zoom=16&size=535,660'; 

//Сюда выкладываем скачиваемую картинку
$path = '/server/path/name.jpg';
file_put_contents($path, file_get_contents($url));


Другое решение через cURL
$ch = curl_init('http://static.maps.2gis.com/1.0?zoom=16&size=535,660');
$fp = fopen('/server/path/name.jpg', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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