2012-03-13 31 views
8

Kullanıcıların, uyguladığım aracılığıyla içeriği Duvarları'na paylaşmasına izin vermek için Facebook SDK kullanıyorum. Tipik bir mesajın, yazıya eşlik edecek bir görüntü yanı sıra bazı metin içereceği Facebook SDK ile oldukça standart bir kurulum.iOS için Facebook gönderileri için yüksek kaliteli resimler göster

Her şey yolunda gidiyor, ancak benim sorunum, Facebook'un görüntüleri yeniden düzenledikçe yeniden boyutlandırdığı ve görüntüleri dönüştürdüğünden, Retina ekranından görüntülendiğinde, post görüntüleri biraz pikselli görünüyor. Facebook'un bunun için daha yüksek kaliteli bir görüntü kullanmasını sağlamanın bir yolu olup olmadığını bilen var mı?

Tekrar kullanmak gerekirse, kullandığım orijinal resimlerin kalitesi yeterince yüksek, ancak Facebook onları biraz fazla yıpratıyor ve bir Retina ekran üzerinde çok iyi görünmüyor. Bunu bir şekilde önleyebilir miyiz?

Aşağıda kullanıyorum oldukça standart Facebook posta kodu bir alıntıdır;

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

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

Bağlantı kurduğum resimlerin kabaca 250x250px JPG olduğunu unutmayın.

EDIT: Ne demek istediğimi açıklamak için örnek bir resim eklendi. Facebook'tan retina ekranları için yüksek çözünürlüklü bir görüntü kullanmasını istemek için bir yol olup olmadığını görmeye çalışıyorum. peşin

Post image and how it looks on FB

teşekkürler!

+0

Resmi almak ve daha sonra uygulamanızda göstermek için hangi kodu kullanıyorsunuz? Facebook her resmin çeşitli boyutlarını saklar. Genellikle yüksek kalite sürümünü basit bir sorgu dizesi parametresiyle alabilirsiniz, ancak görüntüyü nasıl geri aldığınıza bağlı olarak değişir. –

+0

@Inturbidus, Bilgileriniz için teşekkürler, ancak uyguladığımdan Facebook'tan fotoğraf almamdan söz etmiyorum; daha ziyade, uygulamamla içerik yükleme/paylaşma FB'ye. İhtiyacım olan şeyi daha iyi açıklamak için bir resim ekledim. – Madhu

+0

Ah Üzgünüm, yanlış anladım. –

cevap

1

Fotoğrafınızı, kullanıcının fotoğraf albümlerinde güncelleyebilirsiniz. Bu da bir duvar direği ile sonuçlanacaktır. (Bu da sizin durumda sığıyorsa.) Bu kod şöyle olacaktır:

// 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]; 

(Not: albümleri için yüklenen fotoğrafları her iki tarafta 960px daha küçük olmalıdır bkz. Facebook Documentation)

+0

Zaman ayırdığınız için çok teşekkürler jaydee. Birinin duvarına aslında bir fotoğraf göndermeyi mi düşünüyorsun? Ben Q'nun çok net olmadığı durumda, netlik için soruma bir örnek resim ekledim. – Madhu

+0

de bu sadece başka bir fikir, facebook'a daha kaliteli görüntüler nasıl getirilir. fiili bir wallpost'u ima etmiyorum, ancak bir kullanıcı fotoğrafları yüklediğinde otomatik bir wallpost yaratılacaktır. Sanırım wallpostlar için varsayılan facebook görüntü boyutunu * değiştiremezsiniz. – calimarkus

+0

Katılıyorum. Buna hala korkmuyorum, ama korkarım ki bunun bir yolu yok. Sorunun kendisini cevapsız bırakacağım, ancak ödülün bir saat içinde sona ereceğini göreceğim, sadece sana katılacağım. Atıklara gitmesine izin vermek için bir sebep yok :) – Madhu

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. 

Görüntünün kaynağını, cihaza bağlı olarak FB'ye bağımlı hale getirmenizi tavsiye ederim.

İlgili konular