2012-03-13 87 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。