Получение превью картинок
Для изображений, загруженных на Яндекс Диск, можно запросить превью — уменьшенную версию картинки.
Чтобы получить превью изображения, следует запросить ее с помощью метода 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 пикселей: