हिन्दी
हिन्दी
Appearance
हिन्दी
हिन्दी
Appearance
क्वेरी पैरामीटर का उपयोग करके IPFS से सर्व की गई छवियों को ऑन-द-फ्लाई रूपांतरित और अनुकूलित करें। यह एक सार्वजनिक endpoint है जिसके लिए प्रमाणीकरण की आवश्यकता नहीं है।
GET https://api.ipfs.ninja/image/:cid
दिए गए CID पर छवि को प्रदान किए गए क्वेरी पैरामीटर के अनुसार रूपांतरित करके लौटाता है। यदि कोई रूपांतरण पैरामीटर प्रदान नहीं किया जाता है, तो अनुरोध IPFS गेटवे पर मूल छवि के लिए 302-रीडायरेक्ट करता है।
| Parameter | Type | Required | Description |
|---|---|---|---|
cid | string | हाँ | छवि का IPFS कंटेंट आइडेंटिफायर। |
| Parameter | Type | Default | Description |
|---|---|---|---|
w | integer | — | आउटपुट चौड़ाई पिक्सेल में। सीमा: 1–4096। ≤ 0 या गैर-संख्यात्मक मान अनदेखा किए जाते हैं। |
h | integer | — | आउटपुट ऊँचाई पिक्सेल में। सीमा: 1–4096। ≤ 0 या गैर-संख्यात्मक मान अनदेखा किए जाते हैं। |
format | string | — | आउटपुट फॉर्मेट: webp, jpeg, png, या avif। केस-सेंसिटिव (lowercase)। अज्ञात मान अनदेखा किए जाते हैं। |
quality | integer | 80 | संपीड़न गुणवत्ता, 1–100। केवल webp, jpeg और avif पर लागू होता है। png दोषरहित है और इसे अनदेखा करता है। |
fit | string | cover | छवि आयामों में कैसे फिट होनी चाहिए: cover, contain, fill, inside, या outside। |
नोट: पैरामीटर
qualityहै,qनहीं। सामान्य संक्षिप्त उपनाम (q,width,height,fmt) पहचाने नहीं जाते।
ऐसा अनुरोध जो w, h, या format में से कोई भी प्रदान नहीं करता, उसे no-op माना जाता है और मूल छवि पर 302-रीडायरेक्ट करता है। केवल quality और fit रूपांतरण को ट्रिगर नहीं करते।
| Mode | Behavior |
|---|---|
cover | दोनों आयामों को कवर करने के लिए क्रॉप करें (डिफ़ॉल्ट)। |
contain | आस्पेक्ट रेशियो बनाए रखते हुए दोनों आयामों के भीतर फिट करें। खाली स्थान छोड़ सकता है (फॉर्मेट के आधार पर पारदर्शी या काला)। |
fill | दोनों आयामों को बिल्कुल भरने के लिए खींचें। छवि को विकृत कर सकता है। |
inside | contain की तरह, लेकिन केवल छोटा करता है, कभी बड़ा नहीं। |
outside | cover की तरह, लेकिन केवल छोटा करता है, कभी बड़ा नहीं। |
ट्रांसफॉर्मर कभी भी छवि को उसके स्रोत आयामों से बड़ा नहीं करता। यदि आप 1200px-चौड़े स्रोत के लिए w=2000 का अनुरोध करते हैं, तो आउटपुट 1200px चौड़ा होगा। यह सभी fit मोड पर लागू होता है।
| Status | When | Body |
|---|---|---|
200 | इस अनुरोध पर रूपांतरण उत्पन्न हुआ। | बाइनरी छवि बाइट्स। Content-Type अनुरोधित फॉर्मेट से मेल खाता है। |
302 | कोई रूपांतरण पैरामीटर प्रदान नहीं किया गया, या पहले से रूपांतरित परिणाम पहले से कैश किया हुआ है। | Location हेडर मूल छवि या https://ipfs.ninja/image-cache/... पर कैश किए गए परिणाम की ओर इंगित करता है। |
400 | cid पथ पैरामीटर गुम है। | { "error": "cid required" } |
404 | गेटवे पर CID नहीं मिला। | { "error": "CID not found" } |
500 | अप्रत्याशित त्रुटि (दूषित छवि, रूपांतरण विफलता, आदि)। | { "error": "<message>" } |
सभी 200 और 302-कैश प्रतिक्रियाएँ Cache-Control: public, max-age=31536000, immutable के साथ सर्व की जाती हैं। नीचे Caching देखें।
400px चौड़ाई में आकार बदलें, WebP में परिवर्तित करें:
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=400&format=webp"60% गुणवत्ता पर JPEG के रूप में 200×200 थंबनेल में आकार बदलें और क्रॉप करें:
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=200&h=200&format=jpeg&quality=60&fit=cover"क्रॉपिंग के बजाय लेटरबॉक्सिंग के साथ वर्गाकार थंबनेल:
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=200&h=200&format=png&fit=contain"केवल फॉर्मेट परिवर्तन, आकार बदले बिना (पुराने JPEG के AVIF/WebP संस्करण सर्व करने के लिए उपयोगी):
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?format=avif&quality=70"ऊँचाई को बाध्य किए बिना अधिकतम चौड़ाई की सीमा (आस्पेक्ट रेशियो बनाए रखता है):
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=1200&format=webp"img टैग में सीधे अनुकूलित छवियों का संदर्भ दें:
<img
src="https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=800&format=webp&quality=75"
alt="Optimized IPFS image"
/>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"
/><picture> के साथ आधुनिक फॉर्मेट नेगोशिएशन (AVIF → WebP → JPEG फॉलबैक):
<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");
}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}
/>;प्रतिक्रियाएँ Cache-Control: public, max-age=31536000, immutable के साथ सर्व की जाती हैं। चूँकि IPFS कंटेंट कंटेंट-एड्रेस्ड है, समान पैरामीटर के साथ समान CID हमेशा समान आउटपुट उत्पन्न करता है, इसलिए ब्राउज़र और CDN प्रतिक्रियाओं को अनिश्चित काल तक कैश कर सकते हैं।
कैश किए गए रूपांतरण पूर्ण पैरामीटर सेट (cid, w, h, format, quality, fit) द्वारा कुंजीबद्ध करके S3 में संग्रहीत किए जाते हैं। समान पैरामीटर के साथ बाद के अनुरोध रूपांतरण को फिर से चलाने के बजाय CloudFront-फ्रंटेड कैश (https://ipfs.ninja/image-cache/...) पर 302 रीडायरेक्ट लौटाते हैं। विभिन्न पैरामीटर संयोजन विभिन्न कैश प्रविष्टियाँ उत्पन्न करते हैं।
छवि अनुकूलन सभी प्लान्स पर उपलब्ध है, जिसमें मुफ्त Dharma प्लान भी शामिल है।