गुणवत्ता खोए बिना इमेज का साइज़ कैसे बदलें
इमेज रिसाइज़ करने से हमेशा डेटा बदलता है। छोटा करने पर सॉफ़्टवेयर पिक्सेल हटाता है; बड़ा करने पर नए पिक्सेल बनाता है। सही रीसैंपलिंग फ़िल्टर और आउटपुट फ़ॉर्मेट से यह बदलाव सामान्य देखने की दूरी पर दिखाई नहीं देता।
रीसैंपलिंग तरीके
रिसाइज़ करते समय सॉफ़्टवेयर जो फ़िल्टर उपयोग करता है, वही तय करता है कि रिज़ल्ट कितना शार्प दिखेगा।
| तरीका | सबसे अच्छा किसके लिए | नोट |
|---|---|---|
| Lanczos | फ़ोटो, डाउनस्केलिंग | सबसे शार्प रिज़ल्ट; कड़े किनारों पर हल्की रिंगिंग |
| Bicubic | फ़ोटो, सामान्य उपयोग | अच्छी क्वालिटी; ज़्यादातर टूल का डिफ़ॉल्ट |
| Bilinear | तेज़ प्रीव्यू | सॉफ़्टर; गणना में तेज़ |
| Nearest neighbor | पिक्सेल आर्ट, आइकन | कड़े किनारे बनाए रखता है; फ़ोटो के लिए गलत |
फ़ोटो डाउनस्केल करने के लिए Lanczos सबसे शार्प आउटपुट देता है। पिक्सेल आर्ट या आइकन स्प्राइट के लिए nearest neighbor कड़े किनारे बनाए रखता है।
ब्राउज़र में
Image Resizer में इमेज खींचें, टारगेट चौड़ाई या ऊंचाई दर्ज करें, और डाउनलोड करें। डाइमेंशन डालने से पहले आस्पेक्ट रेशियो लॉक करें ताकि खिंचाव न हो। टूल क्लाइंट-साइड चलता है — इमेज आपके डिवाइस से बाहर नहीं जाती।
ImageMagick (कमांड लाइन)
# 800px चौड़ा, आस्पेक्ट रेशियो बनाए रखें
convert input.jpg -resize 800x output.jpg
# सटीक डाइमेंशन (रेशियो अलग हो तो खिंचाव होगा)
convert input.jpg -resize 800x600! output.jpg
# बाउंडिंग बॉक्स में फिट करें, अपस्केल न करें
convert input.jpg -resize 800x600> output.jpg
# Lanczos रीसैंपलिंग के साथ
convert input.jpg -resize 800x -filter Lanczos output.jpg
# रिसाइज़ करें और WebP में कन्वर्ट करें, क्वालिटी 85
convert input.jpg -resize 800x -quality 85 output.webp
> फ़्लैग अपस्केलिंग रोकता है — अज्ञात डाइमेंशन की फ़ाइलें बैच प्रोसेस करते समय उपयोगी।
sharp (Node.js)
npm install sharp
const sharp = require('sharp');
// 800px चौड़ा, आस्पेक्ट रेशियो बनाए रखें
sharp('input.jpg')
.resize(800)
.toFile('output.jpg');
// सटीक डाइमेंशन, क्रॉप करके भरें
sharp('input.jpg')
.resize(800, 600, { fit: 'cover', position: 'centre' })
.toFile('output.jpg');
// Lanczos kernel के साथ
sharp('input.jpg')
.resize(800, null, { kernel: sharp.kernel.lanczos3 })
.toFile('output.jpg');
// रिसाइज़ करें और WebP में बदलें
sharp('input.jpg')
.resize(800)
.webp({ quality: 85 })
.toFile('output.webp');
fit: 'cover' एकदम भरने के लिए क्रॉप करता है। fit: 'contain' लेटरबॉक्सिंग जोड़ता है। fit: 'inside' क्रॉप या पैडिंग के बिना बॉक्स में फिट करता है।
Python: Pillow
from PIL import Image
with Image.open('input.jpg') as img:
ratio = 800 / img.width
new_height = int(img.height * ratio)
resized = img.resize((800, new_height), Image.LANCZOS)
resized.save('output.jpg', quality=85, optimize=True)
Image.LANCZOS Pillow में सबसे उच्च-गुणवत्ता वाला डाउनसैंपलिंग फ़िल्टर है। Pillow 10+ में यह Image.Resampling.LANCZOS के रूप में भी उपलब्ध है।
thumbnail() मेथड आस्पेक्ट रेशियो बनाए रखती है और अपस्केल नहीं करती:
from PIL import Image
with Image.open('input.jpg') as img:
img.thumbnail((800, 800), Image.LANCZOS) # 800×800 के भीतर फिट
img.save('output.jpg', quality=85)
अपस्केलिंग
अपस्केलिंग से हमेशा क्वालिटी कम होती है — सॉफ़्टवेयर को वह पिक्सेल डेटा बनाना पड़ता है जो था ही नहीं। स्टैंडर्ड bicubic अपस्केलिंग ओरिजिनल साइज़ के लगभग 1.5× से ज़्यादा पर धुंधली लगती है।
AI अपस्केलर (Real-ESRGAN, Topaz Gigapixel) 2–4× पर बेहतर रिज़ल्ट देते हैं लेकिन धीमे हैं और ज़्यादातर वेब काम के लिए ज़रूरी नहीं। वेबसाइट के लिए अपस्केलिंग से बचें: सोर्स इमेज अपने सबसे बड़े डिस्प्ले साइज़ से बड़ी रखें।
रेटिना और HiDPI डिस्प्ले
रेटिना स्क्रीन में स्टैंडर्ड स्क्रीन से 2× पिक्सेल डेंसिटी होती है। 400 px CSS चौड़ाई पर दिखाई इमेज शार्प दिखने के लिए 800 px सोर्स फ़ाइल चाहिए। srcset से दोनों साइज़ सर्व करें:
<img
src="image-400.jpg"
srcset="image-400.jpg 1x, image-800.jpg 2x"
width="400"
alt="विवरण"
/>
सामान्य आउटपुट साइज़
| टारगेट | अनुशंसित डाइमेंशन | फ़ॉर्मेट |
|---|---|---|
| वेब बैनर / OG इमेज | 1200×630 | WebP |
| ब्लॉग पोस्ट इमेज | 800–1200px चौड़ा | WebP |
| Instagram स्क्वायर | 1080×1080 | JPEG |
| Twitter/X कार्ड | 1200×675 | JPEG |
| ईमेल हेडर | 600px चौड़ा | JPEG |
| Favicon | 32×32, 180×180 | PNG |
मुख्य बातें
- फ़ोटो डाउनस्केल करने के लिए Lanczos रीसैंपलिंग सबसे शार्प रिज़ल्ट देता है — इसे डिफ़ॉल्ट रखें।
- अपस्केल न करें: सोर्स इमेज डिस्प्ले साइज़ से बड़ी होनी चाहिए।
- रिसाइज़ के बाद सबसे छोटी फ़ाइल के लिए WebP क्वालिटी 80–85 पर कन्वर्ट करें।
- sharp में
fit: 'cover'और Pillow मेंthumbnail()दोनों आस्पेक्ट रेशियो अपने आप संभालते हैं। - रेटिना स्क्रीन के लिए
srcsetसे 2× इमेज सर्व करें।