Здравствуйте, я новичок в разработке приложений для Facebook и работаю над своим первым приложением.
Мое приложение включает функцию извлечения изображения из профиля пользователя и объединения его с другим изображением.
Проблема в том, что формат изображения профиля, который будет возвращать Facebook, не может быть определен узнал это здесь , поэтому я решил сохранить .gif в качестве файла по умолчанию Тип и создал условие для проверки типа а затем преобразовать любой формат в формат .gif, чтобы его можно было использовать в дальнейшем.
Но проблема в том, что в процессе преобразования изображение теряет качество в очень большой степени, что, конечно, неприемлемо в идеальной ситуации.
// Create image instances
$url = "http://graph.facebook.com/{$userId}/picture?type=large";
$dpImage = 'temp/' . $userId . '_dpImage_' . rand();
file_put_contents($dpImage, file_get_contents($url));
$dpImageGif = 'temp/' . $userId . '_dpImageGif_' . rand() . '.gif';
if (exif_imagetype($dpImage) == IMAGETYPE_GIF) {
$imageObject = imagecreatefromgif($dpImage);
}
if (exif_imagetype($dpImage) == IMAGETYPE_JPEG) {
$imageObject = imagecreatefromjpeg($dpImage);
}
if (exif_imagetype($dpImage) == IMAGETYPE_PNG) {
$imageObject = imagecreatefrompng($dpImage);
}
imagegif($imageObject, $dpImageGif);
$src = imagecreatefromgif($dpImageGif);
$dest = imagecreatefromgif($textImage);
$dst_x = 3;
$dst_y = 69;
$src_x = 0;
$src_y = 0;
$src_w = imagesx($imageObject);
$src_h = imagesy($imageObject);
$pct = 100;
imagecopyresampled($dest, $src, $dst_x, $dst_y, $src_x, $src_y, 200, 280, 180, 252);
$resultImage = "temp/" . $userId . '_resultImage_' . rand() . ".gif";
imagegif($dest, $resultImage);
imagedestroy($dest);
imagedestroy($src);
Есть ли способ обойти это без потери качества изображения.
Пожалуйста, помогите мне через это
Спасибо.