我正在使用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在这里使用高分辨率图像进行视网膜显示。
提前致谢!
答案 0 :(得分:2)
可能这些链接对您有用:
http://www.raywenderlich.com/1488/how-to-use-facebooks-new-graph-api-from-your-iphone-app
答案 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。