2012-03-13 55 views
8

我正在使用Facebook SDK来允许用户通过我的应用程序将内容分享到他们的墙上。它是Facebook SDK的一个非常标准的设置,其中一个典型的帖子将包含一些文本以及随附的图像。为iOS的Facebook帖子显示更高质量的图片

这一切都很好,但我的问题是,由于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]; 

请注意,我链接的图像大致为250x250px JPG,如果有帮助。

编辑: 增加了一个样本图像,以澄清我的意思。我试图看看是否有办法让Facebook在这里使用高清晰度的图像显示视网膜。

Post image and how it looks on FB

提前感谢!

+0

您使用什么代码来抓取图像并在以后的应用程序中显示它? Facebook存储每张照片的几种尺寸。您通常可以使用简单的查询字符串参数获取更高质量的版本,但这取决于您如何获取图像。 – 2012-03-19 18:09:57

+0

@Iurburbus,谢谢你的信息,但我不是在谈论从我的应用程序获取来自Facebook的图片;相反,通过我的应用上传/分享内容给FB。我添加了一张照片来进一步阐明我需要什么。 – Madhu 2012-03-20 07:32:10

+0

啊对不起,我误解了。 – 2012-03-20 16:35:15

回答

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

+0

非常感谢您的时间jaydee。你是指在某人的墙上张贴照片吗?为了清楚起见,我在我的问题中添加了一个样本图片,以防Q值不太清晰。 – Madhu 2012-03-20 07:29:50

+0

好吧,这只是另一个想法,如何将更高质量的图像带到Facebook。即时消息不是指实际的wallpost,但会在用户上传照片时创建自动wallpost。我猜你*不能*更改wallposts的默认facebook图片大小。 – calimarkus 2012-03-20 09:03:48

+0

我同意。尽管如此,恐怕还没有得到答案,但看起来似乎没有办法解决这个问题。我会留下这个问题本身没有答案,但看到赏金将在一个小时内过期,我会放在你身上。没有理由让它浪费:) – Madhu 2012-03-23 08:15:32

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。