Ответ 1
Сентябрь Обновление 4-го 2015 года:
Начиная с 3 сентября 2015 года, instagram теперь позволяет клиентам API получать изображения в исходном соотношении сторон (т.е. прямоугольное для ландшафтов, Portraits) и не будет обрезать их, если вы обновили новый параметр в клиенте API.
Действия:
- Войдите в свои настройки клиентских приложений на https://instagram.com/developer/
- Нажмите Управление клиентами в верхнем навигационном меню.
- Найдите своего клиента API и нажмите Изменить.
- Перейдите на вкладку Миграции для вашего приложения API-клиента и установите флажок "Неквадратные носители".
- Нажмите Обновить клиент.
Что это! Теперь, когда вы получаете изображения из конечных точек API, портреты, пейзажи, которые были загружены, не будут обрезаны до квадратных изображений, и оригиналы будут возвращены.
Связанная запись в блоге: миграция API для пейзажных и портретных форматов
Предыдущий ответ (Устаревший, не используйте, если вы не хотите, чтобы BOTH были квадратными и неквадратными версиями, все еще взломанными:))
Да, API выглядит нетронутым, но я нашел взломать исходные изображения для пейзажей и портретов. Вы должны программно удалить раздел URL-адресов, возвращаемых в массиве images
.
См. ниже - фрагмент из моего ответа здесь.
API по-прежнему возвращает квадратные версии изображений, даже те, которые загружаются как портреты или пейзажи. Если вы хотите, чтобы исходные пейзажные/портретные изображения также, вы должны сделать немного взлома - подробности ниже - до тех пор, пока они не обратятся к нему в ответе API.
Возьмем пример и пройдите через него.
Посмотрите эту фотографию Тейлора Свифта, загруженную одним из пользователей, упомянутых в Сообщение блога IG/пресс-релиз - @johnbenett
https://instagram.com/p/6ZVIHTJLYg/
Это оригинал загруженной фотографии - Портрет 512 пикселей x 640 пикселей
И вот что возвращает API Instagram для различных изображений (включая эскиз) для вышеупомянутого портретного изображения.
"images": {
"low_resolution": {
"url": "https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s320x320/e35/c0.135.1080.1080/11909195_1715998838621946_791786043_n.jpg",
"width": 320,
"height": 320
},
"thumbnail": {
"url": "https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s150x150/e35/c0.135.1080.1080/11909195_1715998838621946_791786043_n.jpg",
"width": 150,
"height": 150
},
"standard_resolution": {
"url": "https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s640x640/sh0.08/e35/c0.135.1080.1080/11909195_1715998838621946_791786043_n.jpg",
"width": 640,
"height": 640
}
Таким образом, изображение стандартного разрешения, возвращаемое API для этого портретного изображения, 640 пикселей квадратный и выглядит следующим образом.
а изображение с низким разрешением, возвращаемое API для этого портретного изображения, составляет 320 пикселей квадратный и выглядит следующим образом.
и последнее, но не менее важное, уменьшенное изображение, возвращенное API для этого портретного изображения, 150 пикселей квадратный и выглядит следующим образом.
Итак, как вы получаете исходное изображение для фотографии, загруженной в качестве пейзажа или портрета?
Так как API возвращает на данный момент только один набор изображений, но сайт может отображать исходные изображения с соотношением сторон, я немного искал их и понял, что если вы удалите последнюю, но 1 часть URL из (в этом примере удалите /c0.135.1080.1080
), вы получите исходный формат изображения (и необрезанный), портретные изображения.
Сохраняя тот же пример выше:
Стандартное разрешение Портретное изображение (512 пикселей x 640 пикселей) URL:
https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s640x640/sh0.08/e35/11909195_1715998838621946_791786043_n.jpg
и выглядит так.
Портрет с низким разрешением (256 пикселей x 320 пикселей) URL:
https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s320x320/e35/11909195_1715998838621946_791786043_n.jpg
и выглядит так.
Изображение с уменьшенным изображением (120 px x 150 px) URL:
https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s150x150/e35/11909195_1715998838621946_791786043_n.jpg
и выглядит так.
Надеюсь, что это поможет.