Facebook SDK вернуть изображение профиля в формате JFIF, как конвертировать в JPG/PNG в PHP?

Я использую cURL для получения изображения из Facebook SDK, но предоставленное изображение в формате JFIF. Я пытался использовать некоторые функции, чтобы преобразовать его, как imagejpeg() а также imagepng(), но мой хозяин не поддерживает это. Я также попытался декодировать файл, как описано здесь, но безуспешно. Любая помощь или предложения будут оценены.

//Image handler
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, $jsonresponse['url']);
$data = curl_exec($ch);
curl_close($ch);

$dataDecoded = base64_decode($data); //Last try with base64 decoder
$fb_image = 'fb_picture.jpg';
file_put_contents($fb_image, $dataDecoded); 

Я не получил никаких ошибок, но сохраненное изображение (fb_picture.jpg) не читается и имеет 0 КБ.

1 ответ

JFIF - это уже JPEG с дополнительными метаданными о человеке на фотографии. См. https://tools.ietf.org/html/rfc2798 для получения дополнительной информации. JFIF используется специально для фотографий людей. Вашему хосту нужны imagejpeg() и bundle для работы с jpeg. Установите его как модуль PHP.

Другие вопросы по тегам