Получение превью картинок

Для изображений, загруженных на Яндекс Диск, можно запросить превью — уменьшенную версию картинки.

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

preview_XS

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 пикселей:

preview_XL

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 пикселей:

preview_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 пикселей:

preview_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 пикселей:

preview_101

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 пикселей:

preview_90x

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 пикселей:

preview_700x1000