为iOS的Facebook帖子显示更高质量的图像

时间:2012-03-13 04:20:51

标签: iphone ios facebook image

我正在使用Facebook SDK,允许用户通过我的应用程序将内容分享到他们的墙上。它是一个非常标准的Facebook SDK设置,其中一个典型的帖子将包含一些文本以及随后发布的图像。

这一切都很好,但我的问题是,由于Facebook调整大小并按照他们认为合适的方式转换图像,因此在Retina显示屏上查看时,后期图像看起来有点像素化。有谁知道是否有办法确保Facebook为此使用更高质量的图像?

再次,澄清一下,我使用的原始图像质量足够高,但Facebook有点过分降低它们,并且它们最终在Retina显示屏上看起来不太好。我们能以某种方式避免这种情况吗?

以下是我正在使用的非常标准的Facebook邮政编码的摘录;

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   sharingURL, @"link",
                                   sharingTitle, @"name",
                                   @" ", @"caption",
                                   description, @"description",
                                   actions, @"actions",
                                   picture, @"picture",
                                   nil];

[facebook dialog:@"feed" andParams:params andDelegate:self];

请注意,我链接的图片大约是250x250像素的JPG,如果这有帮助的话。

修改: 添加了一个示例图像来阐明我的意思。我试图看看是否有办法让Facebook在这里使用高分辨率图像进行视网膜显示。

Post image and how it looks on FB

提前致谢!

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

您可以在用户的​​相册中更新照片。这也将导致墙贴。 (如果这也符合你的情况。)那就是代码:

// save image as data
UIImage* image = [...];
NSData *imageData = UIImageJPEGRepresentation(image, 0.8);
[params setValue: imageData forKey: @"source"];

// send post request
Facebook* facebook = [...];
[facebook requestWithGraphPath: @"me/photos" andParams: params andHttpMethod: @"POST" andDelegate: delegate];

(注意:相册的上传图片每边必须小于960像素。请参阅:Facebook Documentation

答案 2 :(得分:0)

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2)    
{       
    //iPhone 4
   //Use @2x images here
    NSLog(@"iPhone 4");
}
else 
{
    //iPhone 3 or earlier
   //Use original images here
   NSLog(@"iPhone 3 or earlier");
}


//May this will help you.

我建议你根据设备改变图像的来源,而不是让它依赖于FB。