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

时间:2015-11-20 18:05:55

标签: php facebook php-gd

我正在尝试复制并使用Facebook个人资料中的图片。我可以把图像搞定。他们中的大多数是“jpgs”,然而,其中一些是'pngs',甚至一些是'GIF'。可能还有其他我不知道的事情。

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

以下代码用于获取图像,使用json我得到网址... 但最后一行代码无效,除非我有正确的图像类型

$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 个答案:

答案 0 :(得分: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;
    }
}