Latviešu
Latviešu
Appearance
Latviešu
Latviešu
Appearance
Transformējiet un optimizējiet no IPFS piegādātos attēlus uzreiz, izmantojot vaicājuma parametrus. Šis ir publisks endpoint, kuram nav nepieciešama autentifikācija.
GET https://api.ipfs.ninja/image/:cid
Atgriež attēlu pie norādītā CID, transformētu saskaņā ar sniegtajiem vaicājuma parametriem. Ja nav sniegti transformācijas parametri, pieprasījums tiek 302-pāradresēts uz oriģinālo attēlu IPFS vārtejā.
| Parameter | Type | Required | Description |
|---|---|---|---|
cid | string | Jā | Attēla IPFS satura identifikators. |
| Parameter | Type | Default | Description |
|---|---|---|---|
w | integer | — | Izvades platums pikseļos. Diapazons: 1–4096. Vērtības ≤ 0 vai neskaitliskas tiek ignorētas. |
h | integer | — | Izvades augstums pikseļos. Diapazons: 1–4096. Vērtības ≤ 0 vai neskaitliskas tiek ignorētas. |
format | string | — | Izvades formāts: webp, jpeg, png vai avif. Reģistrjutīgs (lowercase). Nezināmas vērtības tiek ignorētas. |
quality | integer | 80 | Saspiešanas kvalitāte, 1–100. Attiecas tikai uz webp, jpeg un avif. png ir bezzudumu un to ignorē. |
fit | string | cover | Kā attēlam jāiekļaujas izmēros: cover, contain, fill, inside vai outside. |
Piezīme: parametrs ir
quality, nevisq. Izplatītie saīsinājumi (q,width,height,fmt) netiek atpazīti.
Pieprasījums, kas nesniedz nevienu no w, h vai format, tiek uzskatīts par no-op un 302-pāradresēts uz oriģinālo attēlu. Tikai quality un fit neaktivizē transformāciju.
| Mode | Behavior |
|---|---|
cover | Apgriezt, lai pārklātu abus izmērus (noklusējums). |
contain | Iekļaut abos izmēros, saglabājot malu attiecību. Var atstāt tukšu vietu (caurspīdīgu vai melnu atkarībā no formāta). |
fill | Izstiept, lai tieši aizpildītu abus izmērus. Var izkropļot attēlu. |
inside | Tāpat kā contain, bet tikai samazina, nekad nepalielina. |
outside | Tāpat kā cover, bet tikai samazina, nekad nepalielina. |
Transformators nekad nepalielina attēlu pāri tā avota izmēriem. Ja pieprasāt w=2000 1200px-platam avotam, izvade būs 1200px plata. Tas attiecas uz visiem fit režīmiem.
| Status | When | Body |
|---|---|---|
200 | Šajā pieprasījumā tika izveidota transformācija. | Bināri attēla baiti. Content-Type atbilst pieprasītajam formātam. |
302 | Nav sniegti transformācijas parametri vai iepriekš transformētais rezultāts jau ir kešā. | Location galvene norāda uz oriģinālo attēlu vai kešā saglabāto rezultātu https://ipfs.ninja/image-cache/.... |
400 | Trūkst cid ceļa parametra. | { "error": "cid required" } |
404 | CID vārtejā nav atrasts. | { "error": "CID not found" } |
500 | Negaidīta kļūda (bojāts attēls, transformācijas neveiksme utt.). | { "error": "<message>" } |
Visas 200 un 302-keša atbildes tiek piegādātas ar Cache-Control: public, max-age=31536000, immutable. Skat. Caching zemāk.
Mainīt izmēru uz 400px platumu, konvertēt uz WebP:
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=400&format=webp"Mainīt izmēru un apgriezt uz 200×200 sīktēlu kā JPEG ar 60% kvalitāti:
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=200&h=200&format=jpeg&quality=60&fit=cover"Kvadrātveida sīktēls ar ietvariem apgriešanas vietā:
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=200&h=200&format=png&fit=contain"Tikai formāta konvertēšana, bez izmēra maiņas (noderīgi vecu JPEG AVIF/WebP versiju piegādei):
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?format=avif&quality=70"Maksimālā platuma ierobežošana, neuzliekot augstumu (saglabā malu attiecību):
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=1200&format=webp"Atsauciet optimizētus attēlus tieši img tagos:
<img
src="https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=800&format=webp&quality=75"
alt="Optimized IPFS image"
/>Piegādājiet dažādus izmērus ar srcset:
<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"
/>Modernā formātu sarunāšana ar <picture> (AVIF → WebP → JPEG rezerve):
<picture>
<source
type="image/avif"
srcset="https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=800&format=avif&quality=60"
/>
<source
type="image/webp"
srcset="https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=800&format=webp&quality=75"
/>
<img
src="https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=800&format=jpeg&quality=80"
alt="IPFS image with format fallback"
/>
</picture>CSS background-image:
.hero {
background-image: url("https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=1600&format=webp&quality=70");
}Kā pielāgots ielādētājs priekš next/image:
// loaders/ipfs.js
export default function ipfsLoader({ src, width, quality }) {
return `https://api.ipfs.ninja/image/${src}?w=${width}&format=webp&quality=${quality || 75}`;
}import Image from "next/image";
import ipfsLoader from "@/loaders/ipfs";
<Image
loader={ipfsLoader}
src="QmXmCX9S6ANV..."
alt="IPFS image"
width={800}
height={600}
/>;Atbildes tiek piegādātas ar Cache-Control: public, max-age=31536000, immutable. Tā kā IPFS saturs ir satura adresēts, tas pats CID ar tiem pašiem parametriem vienmēr rada to pašu izvadi, tāpēc pārlūki un CDN var keširot atbildes uz nenoteiktu laiku.
Keša transformācijas tiek glabātas S3, indeksētas pēc pilna parametru kopuma (cid, w, h, format, quality, fit). Turpmākie pieprasījumi ar tiem pašiem parametriem atgriež 302 pāradresāciju uz CloudFront priekšā esošo kešu (https://ipfs.ninja/image-cache/...), nevis atkārtoti palaiž transformāciju. Dažādas parametru kombinācijas rada dažādus keša ierakstus.
Attēlu optimizācija ir pieejama visos plānos, ieskaitot bezmaksas Dharma plānu.