Eesti
Eesti
Appearance
Eesti
Eesti
Appearance
Muutke ja optimeerige IPFS-ist serveeritavaid pilte lennult, kasutades päringu parameetreid. See on avalik endpoint, mis ei nõua autentimist.
GET https://api.ipfs.ninja/image/:cid
Tagastab pildi antud CID-l, mis on teisendatud vastavalt esitatud päringuparameetritele. Kui ühtegi teisendusparameetrit ei esitata, suunatakse päring 302-ümbersuunamisega IPFS-i lüüsi originaalpildile.
| Parameter | Type | Required | Description |
|---|---|---|---|
cid | string | Jah | Pildi IPFS-i sisutuvastaja. |
| Parameter | Type | Default | Description |
|---|---|---|---|
w | integer | — | Väljundi laius pikslites. Vahemik: 1–4096. Väärtusi ≤ 0 või mittenumbrilisi ignoreeritakse. |
h | integer | — | Väljundi kõrgus pikslites. Vahemik: 1–4096. Väärtusi ≤ 0 või mittenumbrilisi ignoreeritakse. |
format | string | — | Väljundi vorming: webp, jpeg, png või avif. Tõstutundlik (lowercase). Tundmatuid väärtusi ignoreeritakse. |
quality | integer | 80 | Tihendamise kvaliteet, 1–100. Kehtib ainult webp, jpeg ja avif korral. png on kadudeta ja ignoreerib seda. |
fit | string | cover | Kuidas pilt peaks mahtuma mõõtmetesse: cover, contain, fill, inside või outside. |
Märkus: parameeter on
quality, mitteq. Levinud lühivariante (q,width,height,fmt) ei tunnustata.
Päringut, mis ei esita ühtegi w, h ega format parameetrit, käsitletakse no-op-ina ja see 302-ümbersuunatakse originaalpildile. quality ja fit üksi teisendust ei käivita.
| Mode | Behavior |
|---|---|
cover | Lõika nii, et katab mõlemad mõõtmed (vaikimisi). |
contain | Mahuta mõlemasse mõõtmesse, säilitades kuvasuhte. Võib jätta tühja ruumi (läbipaistev või must olenevalt vormingust). |
fill | Veniva nii, et täidab mõlemad mõõtmed täpselt. Võib pilti moonutada. |
inside | Nagu contain, kuid ainult vähendab, mitte kunagi ei suurenda. |
outside | Nagu cover, kuid ainult vähendab, mitte kunagi ei suurenda. |
Teisendaja ei suurenda kunagi pilti üle selle algallika mõõtmete. Kui taotlete w=2000 1200px-laiusele lähtepildile, on väljundi laius 1200px. See kehtib kõikide fit režiimide kohta.
| Status | When | Body |
|---|---|---|
200 | Selle päringuga loodi teisendus. | Binaarsed pildi baidid. Content-Type vastab taotletud vormingule. |
302 | Teisendusparameetreid ei esitatud või varem teisendatud tulemus on juba vahemällu salvestatud. | Location päis osutab originaalpildile või vahemällu salvestatud tulemusele aadressil https://ipfs.ninja/image-cache/.... |
400 | cid tee parameeter puudub. | { "error": "cid required" } |
404 | CID-d ei leitud lüüsist. | { "error": "CID not found" } |
500 | Ootamatu viga (rikutud pilt, teisenduse ebaõnnestumine jne). | { "error": "<message>" } |
Kõik 200 ja 302-vahemälu vastused serveeritakse Cache-Control: public, max-age=31536000, immutable päisega. Vt Caching allpool.
Muuda mõõdud 400px laiuseks, teisenda WebP-ks:
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=400&format=webp"Muuda mõõdud ja lõika 200×200 pisipildiks JPEG-na 60% kvaliteediga:
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=200&h=200&format=jpeg&quality=60&fit=cover"Ruudukujuline pisipilt kärpimise asemel raamiga:
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=200&h=200&format=png&fit=contain"Ainult vormingu teisendus, ilma suuruse muutmiseta (kasulik vanade JPEG-ide AVIF/WebP versioonide serveerimiseks):
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?format=avif&quality=70"Maksimaalse laiuse piiramine ilma kõrgust sundimata (säilitab kuvasuhte):
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=1200&format=webp"Viidake optimeeritud piltidele otse img siltides:
<img
src="https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=800&format=webp&quality=75"
alt="Optimized IPFS image"
/>Serveeri erinevaid suurusi srcset-iga:
<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"
/>Kaasaegne vormingu läbirääkimine <picture>-iga (AVIF → WebP → JPEG varuvariant):
<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");
}Kohandatud laadijana next/image jaoks:
// 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}
/>;Vastuseid serveeritakse Cache-Control: public, max-age=31536000, immutable päisega. Kuna IPFS-i sisu on sisuaadressitud, annab sama CID samade parameetritega alati sama väljundi, seega saavad brauserid ja CDN-id vastuseid määramata ajaks vahemällu salvestada.
Vahemällu salvestatud teisendused salvestatakse S3-s täieliku parameetrite komplekti (cid, w, h, format, quality, fit) järgi võtmeks. Sama parameetritega järgnevad päringud tagastavad 302 ümbersuunamise CloudFronti taga olevale vahemälule (https://ipfs.ninja/image-cache/...), selle asemel et teisendust uuesti käivitada. Erinevad parameetrite kombinatsioonid loovad erinevaid vahemälukirjeid.
Pildi optimeerimine on saadaval kõikides plaanides, sealhulgas tasuta Dharma plaanis.