2015-11-05 40 views
4

目前我得到這個圖片:如何從Instagram API獲取裁剪後的圖像?

https://scontent.cdninstagram.com/hphotos-xtp1/t51.2885-15/s320x320/e35/11950569_428157634035762_1539002513_n.jpg 

enter image description here

,但我想獲得這個版本的圖像:

https://igcdn-photos-b-a.akamaihd.net/hphotos-ak-xfp1/t51.2885-15/e35/c238.0.603.603/11856567_458440314342209_1536381871_n.jpg 

img2

這是我如何構建API網址:

var apiEndpoint = "https://api.instagram.com/v1"; 

    function composeRequestURL() { 

     var url = apiEndpoint, 
      params = {}; 

     if (settings.next_url != null) { 
      return settings.next_url; 
     } 

     if (settings.hash != null) { 
      url += "/tags/" + settings.hash + "/media/recent"; 
     } 
     else if (settings.search != null) { 
      url += "/media/search"; 
      params.lat = settings.search.lat; 
      params.lng = settings.search.lng; 
      settings.search.max_timestamp != null && (params.max_timestamp = settings.search.max_timestamp); 
      settings.search.min_timestamp != null && (params.min_timestamp = settings.search.min_timestamp); 
      settings.search.distance != null && (params.distance = settings.search.distance); 
     } 
     else if (settings.userId != null) { 
      url += "https://stackoverflow.com/users/" + settings.userId + "/media/recent"; 
     } 
     else if (settings.locationId != null) { 
      url += "/locations/" + settings.locationId + "/media/recent"; 
     } 
     else { 
      url += "/media/popular"; 
     } 

     settings.accessToken != null && (params.access_token = settings.accessToken); 
     settings.clientId != null && (params.client_id = settings.clientId); 
     settings.minId != null && (params.min_id = settings.minId); 
     settings.maxId != null && (params.max_id = settings.maxId); 
     settings.show != null && (params.count = settings.show); 

     url += "?" + $.param(params) 

     return url; 
    } 

是否有任何建議,以獲取裁剪圖像?非常感謝。

回答

5

是的,有建議獲得裁剪圖像。

您只需要知道圖像的原始寬度和高度。

您可以在url中添加/cX.Y.W.H/來裁剪圖像。

例如:您的圖像的原始大小是1080x603。所以,要在正方形中裁剪圖像,我們需要得到方形1080x1080(帶有空格)並將其裁剪爲603x603。答案是:W = 603,H = 603,X =(1080-603)/ 2 = 238,Y =(1080-603)/ 2 = 238。

然後加入/c238.238.603.603/到網址:

https://scontent.cdninstagram.com/hphotos-xtp1/t51.2885-15/s320x320/e35/c238.238.603.603/11950569_428157634035762_1539002513_n.jpg 

https://scontent.cdninstagram.com/hphotos-xtp1/t51.2885-15/s320x320/e35/c238.238.603.603/11950569_428157634035762_1539002513_n.jpg

這種形象是320×320,所以,讓我們的廣場僅刪除一些變量,並獲得網址:

https://scontent.cdninstagram.com/hphotos-xtp1/c238.238.603.603/11950569_428157634035762_1539002513_n.jpg 

https://scontent.cdninstagram.com/hphotos-xtp1/c238.238.603.603/11950569_428157634035762_1539002513_n.jpg

UPD

如果你不知道的圖像的real original size,API返回非正方形圖像的大小(以激活它:管理客戶端 - >編輯 - >遷移選項卡 - >檢查Non square media) 。

例子:

鏈接:

https://api.instagram.com/v1/tags/nonsquare/media/recent?client_id=CLIENT-ID 

從答案:

... 
images: { 
    low_resolution: { 
     url: "https://scontent.cdninstagram.com/hphotos-xpt1/t51.2885-15/e35/p320x320/10949090_860171600771180_267418389_n.jpg", 
     width: 320, 
     height: 400 
    }, 
    thumbnail: { 
     url: "https://scontent.cdninstagram.com/hphotos-xpt1/t51.2885-15/s150x150/e35/c0.135.1080.1080/10949090_860171600771180_267418389_n.jpg", 
     width: 150, 
     height: 150 
    }, 
    standard_resolution: { 
     url: "https://scontent.cdninstagram.com/hphotos-xpt1/t51.2885-15/sh0.08/e35/p640x640/10949090_860171600771180_267418389_n.jpg", 
     width: 640, 
     height: 800 
    } 
} 
... 

在URL我們添加/pWxH/小尺寸來獲得圖像(/p640x640/和真正的原始尺寸1080x1350 Instagram的回報圖像640x800)。你可以使用這個值(640x800)作爲原始的裁剪圖像。

在這個例子中:

API URL:

https://scontent.cdninstagram.com/hphotos-xpt1/t51.2885-15/sh0.08/e35/p640x640/10949090_860171600771180_267418389_n.jpg 

原始地址:

https://scontent.cdninstagram.com/hphotos-xpt1/t51.2885-15/sh0.08/e35/10949090_860171600771180_267418389_n.jpg 

裁剪(640x640)URL:

https://scontent.cdninstagram.com/hphotos-xpt1/t51.2885-15/sh0.08/e35/p640x640/c0.80.640.640/10949090_860171600771180_267418389_n.jpg 

裁剪(320×320從640x640 )url:

https://scontent.cdninstagram.com/hphotos-xpt1/t51.2885-15/sh0.08/e35/p640x640/c160.240.320.320/10949090_860171600771180_267418389_n.jpg 

七分褲(320×320)網址:

https://scontent.cdninstagram.com/hphotos-xpt1/t51.2885-15/sh0.08/e35/p320x320/c0.40.320.320/10949090_860171600771180_267418389_n.jpg 
+0

問題是Instagram的API不返回圖像的大小原著,任何想法?非常感謝 – user782104

+0

發現獲得更高分辨率s320x320的縮略圖是我所需要的。謝謝 – user782104

+0

@ user782104請參閱** UPD **獲取未知原始大小的縮略圖。 – CnapoB