您好我是Facebook应用程序开发的新手,并在我的第一个应用程序上工作。 我的应用程序包括检索用户个人资料图片并将其与另一个图片合并的功能。
问题是facebook将要返回的个人资料图片的图片格式无法确定learned it here,所以我决定将.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);
有没有办法在不损失图像质量的情况下解决这个问题。 请帮我解决这个问题 谢谢。
答案 0 :(得分:0)
保留原始图片格式,因为我认为GIF只能使用256色。