Skip to content

Оптимизация изображений

Трансформируйте и оптимизируйте изображения из IPFS на лету с помощью параметров запроса. Это публичная конечная точка, не требующая аутентификации.

Оптимизировать изображение

GET /image/:cid

Возвращает изображение по указанному CID, трансформированное в соответствии с заданными параметрами запроса. Если параметры не указаны, запрос перенаправляется к оригинальному изображению.

Параметры пути

ПараметрТипОбязательныйОписание
cidstringДаИдентификатор содержимого IPFS изображения.

Параметры запроса

ПараметрТипПо умолчаниюОписание
wnumberШирина выходного изображения в пикселях. Максимум 4096.
hnumberВысота выходного изображения в пикселях. Максимум 4096.
formatstringФормат вывода: webp, jpeg, png или avif.
qualitynumber80Качество сжатия, 1-100. Применяется только при установленном format.
fitstringcoverСпособ вписывания изображения в размеры: cover, contain, fill, inside или outside.

Режимы вписывания

РежимПоведение
coverОбрезка для заполнения обоих размеров (по умолчанию).
containВписать в оба размера с сохранением пропорций. Может оставить пустое пространство.
fillРастянуть для точного заполнения обоих размеров. Может исказить изображение.
insideКак contain, но только уменьшает, никогда не увеличивает.
outsideКак cover, но только уменьшает, никогда не увеличивает.

Примеры запросов

Изменить размер до 400 пикселей в ширину, конвертировать в WebP:

bash
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=400&format=webp"

Изменить размер и обрезать до миниатюры 200x200 в формате JPEG с качеством 60%:

bash
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=200&h=200&format=jpeg&quality=60&fit=cover"

Использование в HTML

Ссылайтесь на оптимизированные изображения прямо в тегах img:

html
<img
  src="https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=800&format=webp&quality=75"
  alt="Optimized IPFS image"
/>

Предоставляйте разные размеры с помощью srcset:

html
<img
  srcset="
    https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=400&format=webp 400w,
    https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=800&format=webp 800w,
    https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=1200&format=webp 1200w
  "
  sizes="(max-width: 600px) 400px, (max-width: 1000px) 800px, 1200px"
  src="https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=800&format=webp"
  alt="Responsive IPFS image"
/>

Кэширование

Ответы предоставляются с неизменяемыми заголовками кэширования. Поскольку контент IPFS адресуется по содержимому, один и тот же CID с одинаковыми параметрами всегда даёт одинаковый результат. Браузеры и CDN могут кэшировать эти ответы бессрочно.

Доступность

Оптимизация изображений доступна на всех планах, включая бесплатный план Dharma.