Facebook 图表获取个人资料图片图像类型

Posted

技术标签:

【中文标题】Facebook 图表获取个人资料图片图像类型【英文标题】:Facebook graph get profile picture image type 【发布时间】:2015-11-20 18:05:55 【问题描述】:

我正在尝试复制和处理 Facebook 个人资料中的图像。我可以得到图像就好了。其中大多数是“jpgs”,但其中一些是“pngs”,甚至还有一些是“gifs”。可能还有其他我不知道的。

我的问题。 在使用它们之前,我需要找出它们是什么类型的图像。

下面的代码可以获取图像,使用 json 我可以获取 url...但最后一行代码将不起作用,除非我有正确的图像类型

$json = file_get_contents("http://graph.facebook.com/$user[id]/picture?width=512&height=512&redirect=false");

$decoded = json_decode($json,true);
$url = $decoded['data']['url'];



/// This line will only work if the image is a jpeg or it throws an error. 
$source= imagecreatefromjpeg("$url");

感谢您的帮助。

【问题讨论】:

【参考方案1】:

取自Create Image From Url Any File Type

$jpeg_image = imagecreatefromfile( 'photo.jpeg' );
$gif_image = imagecreatefromfile( 'clipart.gif' );
$png_image = imagecreatefromfile( 'transparent_checkerboard.PnG' );
$another_jpeg = imagecreatefromfile( 'picture.JPG' );
// This requires you to remove or rewrite file_exists check:
$jpeg_image = imagecreatefromfile( 'http://example.net/photo.jpeg' );
// SEE BELOW HO TO DO IT WHEN http:// ARGS IS NEEDED:
$jpeg_image = imagecreatefromfile( 'http://example.net/photo.jpeg?foo=hello&bar=world' );

function imagecreatefromfile( $filename ) 
    if (!file_exists($filename)) 
        throw new InvalidArgumentException('File "'.$filename.'" not found.');
    
    switch ( strtolower( pathinfo( $filename, PATHINFO_EXTENSION ))) 
        case 'jpeg':
        case 'jpg':
            return imagecreatefromjpeg($filename);
        break;

        case 'png':
            return imagecreatefrompng($filename);
        break;

        case 'gif':
            return imagecreatefromgif($filename);
        break;

        default:
            throw new InvalidArgumentException('File "'.$filename.'" is not valid jpg, png or gif image.');
        break;
    

【讨论】:

以上是关于Facebook 图表获取个人资料图片图像类型的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的 Facebook 个人资料图片作为按钮图片 [关闭]

使用 channelId 获取 YouTube 频道个人资料图片

获取 twitter 和 google+ 个人资料图片?

将 ios 或 Android 应用程序中的图像设置为 Facebook 个人资料图片(使用 Facebook API)[重复]

一次获取更大的 Facebook 个人资料图片和个人数据

ios、facebook 和获取个人资料图片