Получение превью картинок
Для изображений, загруженных на Яндекс.Диск, можно запросить превью — уменьшенную версию картинки.
Чтобы получить превью изображения, следует запросить ее с помощью метода GET, указав параметр preview
и нужный размер в значении параметра size. Размер превью задается одним из следующих способов:
Размер футболки (как в Яндекс.Фотках), например,
size=M
.Яндекс.Диск возвращает превью выбранного размера.
Поддерживаемые значения:
- «XXXS» — квадрат со стороной 50 пикселей;
- «XXS» — квадрат со стороной 75 пикселей;
- «XS» — квадрат со стороной 100 пикселей;
- «S» — ширина 150 пикселей, оригинальные пропорции;
- «M» — ширина 300 пикселей, оригинальные пропорции;
- «L» — ширина 500 пикселей, оригинальные пропорции;
- «XL» — ширина 800 пикселей, оригинальные пропорции;
- «XXL» — ширина 1024 пикселей, оригинальные пропорции;
- «XXXL» — ширина 1280 пикселей, оригинальные пропорции.
Число, например,
size=128
.Яндекс.Диск возвращает превью заданной ширины. Если указанная ширина больше 100 пикселей, превью сохраняет пропорции оригинала.
В противном случае превью дополнительно редактируется: из центра оригинального изображения вырезается квадратный фрагмент максимального размера, который масштабируется до указанной ширины.
Точные размеры, например,
size=128x256
.Яндекс.Диск возвращает превью указанных размеров. Из центра оригинального изображения вырезается фрагмент максимального размера в заданных пропорциях ширины и высоты (в примере — 128/256 или 1/2). Затем полученный фрагмент масштабируется до указанных размеров. См. пример с указанием точных размеров ниже.
Точная ширина или высота, например
size=128x
илиsize=x256
.Яндекс.Диск возвращает превью указанной ширины или высоты, сохраняя пропорции оригинального изображения.
Ответ сервера
Возможно два варианта ответа сервера:
- HTTP 404 — изображение не найдено на Диске.
- HTTP 200 — изображение найдено, превью создано и возвращено в теле ответа.
Примеры запросов
В примерах используется изображение размером 1280×720 пикселей. Предполагается, что оно находится в каталоге /fotki/
на Диске пользователя. Каждый пример соответствует
В заголовках указано соответствующее значение параметра size.
XS
Запрашивается превью размера XS (квадратное, со стороной 100 пикселей).
GET /fotki/t.jpg?preview&size=XS HTTP/1.1
User-Agent: my_application/0.0.1
Host: webdav.yandex.ru
Authorization: OAuth 0c4182a7c2cf4521964a72ff57a34a07
Сервер отвечает файлом превью размером 100×100 пикселей:

XL
Запрашивается превью размера XL (ширина 800 пикселей, оригинальные пропорции).
GET /fotki/t.jpg?preview&size=XL HTTP/1.1
User-Agent: my_application/0.0.1
Host: webdav.yandex.ru
Authorization: OAuth 0c4182a7c2cf4521964a72ff57a34a07
Сервер отвечает файлом превью размером 800×533 пикселей:

90
Запрашивается превью шириной 90 пикселей.
GET /fotki/t.jpg?preview&size=90 HTTP/1.1
User-Agent: my_application/0.0.1
Host: webdav.yandex.ru
Authorization: OAuth 0c4182a7c2cf4521964a72ff57a34a07
Сервер отвечает файлом превью размером 90×90 пикселей:

100
Запрашивается превью шириной 100 пикселей.
GET /fotki/t.jpg?preview&size=100 HTTP/1.1
User-Agent: my_application/0.0.1
Host: webdav.yandex.ru
Authorization: OAuth 0c4182a7c2cf4521964a72ff57a34a07
Сервер отвечает файлом превью размером 100×100 пикселей:

101
Запрашивается превью шириной 101 пиксель.
GET /fotki/t.jpg?preview&size=101 HTTP/1.1
User-Agent: my_application/0.0.1
Host: webdav.yandex.ru
Authorization: OAuth 0c4182a7c2cf4521964a72ff57a34a07
Сервер отвечает файлом превью размером 101×67 пикселей:

90x
Запрашивается превью шириной 90 пикселей в оригинальных пропорциях.
GET /fotki/t.jpg?preview&size=90x HTTP/1.1
User-Agent: my_application/0.0.1
Host: webdav.yandex.ru
Authorization: OAuth 0c4182a7c2cf4521964a72ff57a34a07
Сервер отвечает файлом превью размером 90×60 пикселей:

700x1000
Запрашивается превью с точными размерами 700x1000 пикселей.
GET /fotki/t.jpg?preview&size=700x1000 HTTP/1.1
User-Agent: my_application/0.0.1
Host: webdav.yandex.ru
Authorization: OAuth 0c4182a7c2cf4521964a72ff57a34a07
Из центра картинки вырезается фрагмент максимального размера в пропорциях ширины и высоты 7 к 10 (700 к 1000). В данном случае размер фрагмента — 504×720.
Затем полученный фрагмент масштабируется до заданных размеров. Сервер отвечает файлом превью размером 700×1000 пикселей:
