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.