# ID फ़ोटो मेकर — नियम के मुताबिक पासपोर्ट और वीज़ा फ़ोटो

देश चुनिए। उसी देश का नियम यह हूबहू लागू कर देता है।

> अपने देश के प्रकाशित नियम के मुताबिक पासपोर्ट या वीज़ा फ़ोटो बनाइए। ठीक mm और DPI, सिर की ऊँचाई और आँखों की रेखा दिखाता लाइव ओवरले, बैकग्राउंड की जाँच, छपाई लायक 4x6 शीट, और पोर्टल की KB सीमा तक कंप्रेस की हुई फ़ाइल। कुछ भी अपलोड नहीं होता।

यह पेज एक इंटरैक्टिव टूल है जो पूरी तरह आपके ब्राउज़र में चलता है, https://abox.tools/hi/id-photo/ पर — आप इसे जो भी देते हैं, वह कहीं अपलोड नहीं होता। आगे वह सब कुछ है जो यह पेज इस टूल के बारे में शब्दों में कहता है; इसे इस्तेमाल करने के लिए यह पता खोलें।

## यह टूल फ़ोटो **कभी अपलोड नहीं करता**। यहाँ कोई सर्वर है ही नहीं।

क्रॉप करना, नापना, बैकग्राउंड पढ़ना और छपाई, सब आपके अपने ब्राउज़र में, आपके अपने हार्डवेयर पर, उसी JPEG एनकोडर से चलते हैं जो उसमें पहले से मौजूद है। इस टूल में किसी भी तरह की कोई नेटवर्क सुविधा है ही नहीं, इसलिए यहाँ से कुछ मँगाया भी नहीं जा सकता और भेजा भी नहीं जा सकता। और मान लीजिए कोई रास्ता होता भी, तो इस पेज के दूसरी तरफ़ ऐसा कोई सर्वर ही नहीं है जिसे आपके चेहरे की तस्वीर भेजी जा सके।

- ✗ कोई अपलोड नहीं
- ✗ कोई खाता नहीं
- ✗ कोई वॉटरमार्क नहीं
- ✓ ऑफ़लाइन चलता है
- ✓ ओपन सोर्स

## ऐसी पासपोर्ट फ़ोटो कैसे बनाएँ जो लौटाई न जाए

1. **तस्वीर चुनिए।** सादी दीवार के सामने, दिन की रोशनी में, करीब डेढ़ मीटर की दूरी से खींची गई फ़ोन की तस्वीर। ब्राउज़र उसे सीधे आपकी डिस्क से पढ़ता है, और इस दौरान कुछ भी कहीं नहीं भेजा जाता।
2. **देश और दस्तावेज़ चुनिए।** फिर पैनल उस नियम का छपाई साइज़, सिर-ऊँचाई की पट्टी, आँखों की रेखा, बैकग्राउंड का रंग और अपलोड की सीमाएँ दिखा देता है, और साथ में वह प्राधिकरण भी जिससे हर आँकड़ा आया तथा वह तारीख जब उसे पढ़ा गया। उस सूची में कुछ भी अंदाज़े से नहीं है। आपको जो कुछ भेजा गया हो पर उसमें न हो, वह “कहीं और” के नीचे जाता है।
3. **अपने चेहरे पर चारों बिंदु देख लीजिए।** शिखर, ठुड्डी और हर पुतली — नियम जो कुछ नापता है वह पूरा का पूरा यही चार बिंदु हैं। इन्हें फ़ोटो को ही नापकर रखा जाता है, और नीचे की पंक्ति बताती है कि इनमें से क्या नप गया और क्या निकालना पड़ा। जो गलत जगह गिरा हो उसे खींच दीजिए, या *मैं खुद रखूँगा* पर जाकर चारों अपने हाथ से रखिए। फिर *डिब्बा बिठाइए* दबाइए, और क्रॉप वहीं आएगा जहाँ वह देश चाहता है।
4. **चारों जाँचें और बैकग्राउंड पढ़ लीजिए।** सिर की ऊँचाई, आँखों की रेखा, बीच में होना और झुकाव, चारों डिब्बे की मौजूदा हालत से नापे जाते हैं, और हद से बाहर होने पर हर एक बता देता है कि किस तरफ़ खींचना है। बैकग्राउंड क्रॉप के ऊपरी हिस्से और दोनों किनारों से पढ़ा जाता है और उस रंग से मिलाया जाता है जो नियम माँगता है। असमानता, जिसकी वजह से असल में फ़ोटो लौटाई जाती हैं, रंग से अलग नापी जाती है।
5. **तीनों फ़ाइलें ले जाइए।** छपाई वाली, ठीक तय मिलीमीटर पर, और रिज़ॉल्यूशन फ़ाइल के भीतर लिखा हुआ, ताकि दुकान उसे सही साइज़ पर छापे। शीट, जिसमें ⁦4 × 6⁩ में जितनी नकलें समा सकें उतनी हों और बीच की जगहों में काटने के निशान। और अपलोड वाली, उसी पिक्सल साइज़ पर जो पोर्टल माँगता है और उसी KB पट्टी के भीतर जिसे वह दोनों सिरों पर लागू करता है।

## विस्तार से

[ऐसी पासपोर्ट फ़ोटो कैसे खींचें जो लौटाई न जाए](https://abox.tools/hi/guides/make-a-passport-photo/): पासपोर्ट फ़ोटो असल में किन बातों पर नापी जाती है - सिर की ऊँचाई, आँखों की रेखा, बैकग्राउंड - कौन-सा देश कौन-से आँकड़े माँगता है, और ऑनलाइन फ़ॉर्म जो पिक्सल तथा KB सीमाएँ लागू करता है उन तक कैसे पहुँचें।

## बॉक्स में और भी टूल

- [इमेज स्टैकर](https://abox.tools/hi/stack-images/): बीस फ़्रेम एक में, न बीस अपलोड, न कोई RAW कन्वर्टर।
- [इमेज ब्लैकआउट टूल](https://abox.tools/hi/redact-image/): जो हिस्सा आप ढकते हैं वह फ़ाइल से मिट जाता है, फ़ाइल के अंदर छिपा नहीं रहता।
- [EXIF व्यूअर और रिमूवर](https://abox.tools/hi/exif-editor/): देखिए कि फ़ोटो आपके बारे में क्या-क्या बता रही है। फिर उसे निकाल बाहर कीजिए।
- [DICOM व्यूअर](https://abox.tools/hi/dicom-viewer/): CT, MRI, एक्स-रे और अल्ट्रासाउंड, विंडो, हेडर और नाप के साथ।

## सवाल

### क्या मेरी फ़ोटो कहीं अपलोड होती है?

नहीं। तस्वीर को डिकोड करने, क्रॉप करने, नापने और लिखने का काम आपका अपना ब्राउज़र आपके अपने हार्डवेयर पर करता है, उसी JPEG एनकोडर से जो ब्राउज़र में पहले से आता है। इस टूल में किसी भी तरह की कोई नेटवर्क सुविधा है ही नहीं, यानी यह न कभी कुछ मँगाता है, न कभी कुछ भेजता है। और पेज की `Content-Security-Policy` उन सारे पतों के नाम गिना देती है जिनसे यह संपर्क कर सकता है, जिनमें से एक भी इस साइट का नहीं है। यहाँ इसकी कीमत ज़्यादातर टूलों से ज़्यादा है, क्योंकि फ़ाइल आपके चेहरे की तस्वीर है।

### इसमें कौन-कौन से देश शामिल हैं?

अब तक जो विनिर्देश उतारे गए हैं वे ये हैं। खुद ICAO मानक, संयुक्त राज्य अमेरिका (पासपोर्ट और Diversity Visa की प्रविष्टि, जिनके अपलोड नियम अलग हैं), यूनाइटेड किंगडम, शेंगेन वीज़ा, जर्मनी, कनाडा, ऑस्ट्रेलिया, भारत (पासपोर्ट, ⁦35 × 45⁩ mm की छपाई, और SSC/UPSC फ़ॉर्म की फ़ोटो तथा दस्तखत), चीन और जापान। हर प्रविष्टि उस प्राधिकरण का नाम लेती है जिससे वह आई, और वह तारीख भी जब उसे पढ़ा गया। बाकी सब कुछ “कहीं और” के नीचे जाता है, जहाँ हर आँकड़ा आपको खुद टाइप करना है। और चूँकि दुनिया का ज़्यादातर हिस्सा ICAO ज्यामिति के हिसाब से ही जारी करता है, वह प्रविष्टि उसी से शुरू होती है।

### चेहरा-मॉडल के बिना यह शिखर, ठुड्डी और आँखें कैसे ढूँढ़ लेता है?

एक बात मानकर, जो किसी आम फ़ेस डिटेक्टर को मानने की छूट नहीं है और इस टूल को है: इनमें से हर नियम एक ही दृश्य माँगता है — एक व्यक्ति, कैमरे के सामने, एक सादी और एक-सी रोशनी वाली दीवार के आगे। तो दीवार का रंग फ़ोटो के किनारे से पढ़ लिया जाता है, जो कुछ उस रंग का नहीं है वही व्यक्ति है, और उसका सबसे ऊपरी सिरा शिखर है, बालों समेत। पुतलियाँ ऐसे धब्बों की सबसे अच्छी जोड़ी के रूप में ढूँढ़ी जाती हैं जो अपने आसपास से गहरे हों, एक ही ऊँचाई पर हों और सिर के बीचोंबीच के दोनों ओर हों — यह तुलना स्थानीय है, इसलिए इसमें कुछ भी इस पर निर्भर नहीं कि चेहरे का रंग क्या है। ठुड्डी अकेली ऐसी है जो इस तरह नहीं मिलती, क्योंकि गर्दन के आगे जबड़ा एक नरम किनारा है जिस पर रंग बदलता ही नहीं; उसे पुतलियों से निकाला जाता है, जो ऊपर के बालों को भी गिन लेने पर सिर की ऊँचाई के बीच से थोड़ा नीचे होती हैं, और फिर बाहरी रेखा से मिलाकर देखा जाता है। यह सब `src/detect.js` में गणित भर है: न वेट, न रनटाइम, न कुछ मँगाया गया, और हर चेहरे के लिए वही गणित। आखिरी बात ही असल बात है, क्योंकि साथ भेजा गया डिटेक्टर असमान रूप से गलत होता है — कुछ चेहरों पर औरों से ज़्यादा — और जिनकी फ़ोटो पहले से सबसे ज़्यादा लौटाई जाती हैं, वही उसके हाथों सबसे पहले मारे जाते।

### यह जो बिंदु रखता है, उन पर कितना भरोसा करूँ?

इतना कि वहाँ से शुरू किया जा सके, इतना नहीं कि देखा ही न जाए। चारों में से हर एक के लिए कोई न कोई फ़ोटो ऐसी है जिस पर वह गलत होता है: छापेदार दीवार या किताबों की अलमारी के सामने सिर की कोई बाहरी रेखा बचती ही नहीं, ऊपर से कटे सिर वाली फ़ोटो में शिखर होता ही नहीं, और चश्मा, घनी फ़्रिंज या बंद आँखें पुतलियों को गलत जगह बिठा सकती हैं। इसीलिए टूल साफ़-साफ़ बताता है कि चारों में से क्या उसने नापा और क्या निकाला, बिना सादे बैकग्राउंड वाली फ़ोटो पर जवाब गढ़ने के बजाय साफ़ मना कर देता है, और हर बिंदु खींचने लायक छोड़ देता है। क्रॉप वहीं से बनता है जहाँ बिंदु आखिर में रहते हैं, वहाँ से कभी नहीं जहाँ से वे शुरू हुए थे। अगर आप चारों खुद रखना चाहें, तो फ़ोटो के ऊपर वाला स्विच *मैं खुद रखूँगा* कहता है — और किसी भी बिंदु को हाथ से हिलाते ही वह अपने आप उसी पर चला जाता है, क्योंकि उस पल से वे आपके हैं और उन्हें कुछ भी नहीं हिलाएगा।

### सिर की ऊँचाई वाला नियम क्या है, और मेरी उसमें बार-बार क्यों अटक जाती है?

इनमें से हर विनिर्देश बताता है कि सिर को फ़्रेम का कितना हिस्सा भरना चाहिए, और वह ठुड्डी के निचले सिरे से लेकर सिर के सबसे ऊपरी हिस्से तक, बाल समेत नापा जाता है। आम तौर पर 70 से 80 प्रतिशत, जो 45 mm की फ़ोटो के लिए 31.5 से 36 mm बैठता है। इसके अटकने की सबसे आम वजह सेल्फ़ी है, क्योंकि हाथ भर की दूरी करीब 60 सेमी होती है, जो चेहरे को विकृत कर देती है और सिर को फ़्रेम में बहुत बड़ा कर देती है। दूसरी आम वजह शिखर है। वह बालों का सबसे ऊपरी सिरा है, बालों की रेखा नहीं, और बालों की रेखा पर निशान लगाने से हर सिर बहुत छोटा निकलता है।

### फ़ाइल का कम से कम 20 KB होना क्यों ज़रूरी है, और उसमें भराई कैसे की जा सकती है?

भारत के परीक्षा पोर्टल, चीन का वीज़ा फ़ॉर्म और UK पासपोर्ट का अपलोड, तीनों अधिकतम के साथ न्यूनतम फ़ाइल साइज़ भी बताते हैं, क्योंकि उससे छोटी फ़ाइल आम तौर पर वह थंबनेल होती है जो किसी ने गलती से अपलोड कर दिया। ⁦200 × 230⁩ की तस्वीर 46,000 पिक्सल की होती है, और ब्राउज़र जिस सबसे अच्छी क्वालिटी पर उसे लिख सकता है उस पर भी वह 15 KB पर उतर सकती है। कम कंप्रेस करके उसे बड़ा करने का कोई रास्ता भी नहीं है। इसलिए टूल स्पेसों से भरा एक JPEG कमेंट सेगमेंट जोड़ देता है। वह JPEG मानक का हिस्सा है, हर डिकोडर उसे छोड़ देता है, और तस्वीर बिट-दर-बिट वही तस्वीर रहती है, बस फ़ाइल लंबी हो जाती है। वह भराई फ़ाइल के भीतर, अंग्रेज़ी में, ठीक यही बात लिख भी देती है।

### क्या यह बैकग्राउंड जाँचता है, और क्या उसे बदल सकता है?

जाँचता है, बदलेगा नहीं। रंग क्रॉप के ऊपरी हिस्से की एक पट्टी से और दोनों किनारों से, कंधों के ऊपर से पढ़ा जाता है, और नियम के रंग से RGB में नहीं, CIE Lab में मिलाया जाता है। RGB की चालीस इकाई दूर बैठे दो भूरे रंगों में फ़र्क बता पाना नामुमकिन है, जबकि नीले की चालीस इकाइयाँ एक अलग ही रंग हैं। असमानता अलग से नापी जाती है, क्योंकि सफ़ेद दीवार पर पड़ी छाया ही वह चीज़ है जिसकी वजह से असल में फ़ोटो लौटाई जाती हैं, और वह रंग की समस्या है ही नहीं। बैकग्राउंड बदलने का मतलब है किसी व्यक्ति को तस्वीर में से काट निकालना, जो एक सेगमेंटेशन मॉडल है, और खराब मॉडल बाल खा जाता है। दीवार से एक फ़ुट और दूर खड़े हो जाना इनमें से किसी भी फ़िल्टर से ज़्यादा समस्याएँ हल कर देता है।

### ⁦4 x 6⁩ शीट किस काम की है?

बूथ छह फ़ोटो के कई सौ रुपये लेता है। फ़ोटो की दुकान ⁦6 × 4⁩ चंद रुपयों में छाप देती है, और उनमें से हर एक यह कर देगी। इसलिए टूल आपकी फ़ोटो की उतनी नकलें बिछा देता है जितनी कागज़ में समाएँ, यानी ⁦6 × 4⁩ पर ⁦35 × 45⁩ की आठ, बीच की जगहों में काटने के निशान के साथ, और किसी तस्वीर के ऊपर कुछ भी छपे बिना। कुछ भी बिठाने के लिए छोटा-बड़ा नहीं किया जाता। हर नकल ठीक उसी साइज़ की है जो नियम माँगता है, क्योंकि जो शीट एक और फ़ोटो समाने के लिए उन्हें दो प्रतिशत छोटा कर देती, वह आठ ऐसी फ़ोटो होती जो सब की सब गलत साइज़ की हैं। इसे 100 प्रतिशत पर छापिए, क्योंकि शीट के गलत निकलने की वजह “fit to page” ही होती है।

### अगर पिक्सल वही हैं तो DPI से क्या फ़र्क पड़ता है?

फ़र्क इसलिए पड़ता है कि JPEG बता सकती है कि वह किस साइज़ की है, और वह न बताए तो जो भी उसे छापेगा वह अंदाज़ा लगाएगा। रिज़ॉल्यूशन JFIF हेडर में रहता है, और ब्राउज़र का कैनवस वह हेडर units खाने में यह लिखकर बनाता है कि “यह अनुपात है, रिज़ॉल्यूशन नहीं”। यह टूल उन गिनती के बाइटों को दोबारा लिख देता है ताकि फ़ाइल 300 dpi कहे, और यही वह चीज़ है जो ⁦413 × 531⁩ पिक्सल को किसी अनिश्चित साइज़ की तस्वीर के बजाय ⁦35 × 45⁩ mm की फ़ोटो बना देती है। ऐसा करने के लिए कुछ भी डिकोड नहीं होता, और क्वालिटी की कोई कीमत नहीं लगती।

### क्या यह दस्तखत वाली फ़ाइल भी बना सकता है?

हाँ। SSC और UPSC फ़ॉर्म उसे ⁦140 × 60⁩ पिक्सल पर और 10 से 20 KB के बीच माँगते हैं, और वह अपने अलग विनिर्देश के रूप में सूची में है। उसके लिए चेहरे वाला ओवरले बंद कर दिया जाता है, क्योंकि दस्तखत की कोई आँखों की रेखा होती ही नहीं, और उसके बजाय यह जाँचा जाता है कि कागज़ हल्के रंग का है, उस पर स्याही है, और क्रॉप में कोई लाइन या पन्ने का किनारा नहीं आ गया है। उस नियम का मुश्किल हिस्सा 10 KB तक पहुँचना है, 20 से नीचे रहना नहीं।

### क्या इससे मेरा आवेदन स्वीकार हो ही जाएगा?

नहीं, और कोई भी टूल ईमानदारी से यह नहीं कह सकता। यह इतना करता है कि प्रकाशित आँकड़े हूबहू लागू कर दे और अपनी की गई हर माप आपको दिखा दे। इससे जो चीज़ें फ़ॉर्म अपने आप नापता है, यानी पिक्सल साइज़, फ़ाइल साइज़ और फ़ॉर्मैट, वे सही हो जाती हैं, और जो चीज़ें कोई इंसानी परीक्षक नापता है, यानी सिर की ऊँचाई, आँखों की रेखा और बैकग्राउंड, वे आँकड़ों के साथ आपके सामने आ जाती हैं। नियम बदलते भी रहते हैं, इसलिए यहाँ का हर विनिर्देश बताता है कि वह किस प्राधिकरण से आया और कब पढ़ा गया, ताकि आप किसी तालिका पर भरोसा करने के बजाय उसे अपने सामने रखे फ़ॉर्म से मिला सकें।

### क्या यह मुफ़्त है, और क्या इसके लिए खाता बनाना पड़ेगा?

यह मुफ़्त है, और यहाँ न कोई खाता है, न साइन-इन, न ट्रायल, और न आपके चेहरे पर छपा कोई वॉटरमार्क। आप कितनी फ़ोटो बनाते हैं, इस पर भी कोई सीमा नहीं, क्योंकि इनका बिल चुकाने वाला कोई सर्वर है ही नहीं। साइट पर विज्ञापन हैं और खर्च वही उठाते हैं, लेकिन विज्ञापनों को आपकी तस्वीर के बारे में कुछ नहीं दिया जाता।

### क्या यह ऑफ़लाइन चलता है?

हाँ। पेज एक बार लोड कर लीजिए, फिर इंटरनेट काट दीजिए, यह चलता रहेगा। नियम-पुस्तिका पेज के साथ आई एक फ़ाइल है, कहीं देखी जाने वाली सूची नहीं। कुछ अपलोड नहीं हो रहा, यह साबित करने का सबसे आसान तरीका भी यही है। जो टूल आपकी तस्वीर क्रॉप होने के लिए कहीं भेजता, वह प्लग निकालते ही रुक जाता।

## प्राइवेसी का यह दावा कैसे जाँचा जा सकता है

- **आपके चेहरे की तस्वीर इस मशीन से कभी बाहर नहीं जाती।** यहाँ यह बात ज़्यादातर टूलों से कहीं ज़्यादा मायने रखती है। इस पेज के हाथ में जो फ़ाइल है वह आपके चेहरे की तस्वीर है, और आप उसके साथ जो करने जा रहे हैं उससे उस देश का नाम भी खुल जाता है जिसके दस्तावेज़ के लिए आप आवेदन कर रहे हैं। यह पेज जिन-जिन पतों से संपर्क कर सकता है, `Content-Security-Policy` उन सबके नाम गिना देती है, और उनमें से एक भी इस साइट का नहीं है। यहाँ ऐसा कोई एंडपॉइंट है ही नहीं जहाँ आपकी तस्वीर जमा हो सके।
- **यहाँ कुछ भी कहीं से कुछ नहीं मँगाता।** `src/` में कहीं भी न `fetch` है, न `XMLHttpRequest`, न `sendBeacon`। नियम-पुस्तिका `src/specs.js` में एक तालिका भर है, जो पेज के साथ ही आती है और उसी के साथ कैश हो जाती है। न देखने को कोई देश-सूची कहीं और है, और न दूर बैठकर आपकी फ़ोटो जाँचने को कुछ।
- **चेहरा बिना किसी चेहरा-मॉडल के ढूँढ़ा जाता है।** न डाउनलोड करने को वेट हैं, न उन्हें चलाने का कोई रनटाइम, न कुछ मँगाया जाता है: शिखर पीछे की दीवार के सामने आपके सिर की बाहरी रेखा से आता है, और पुतलियाँ चेहरे के उन हिस्सों से जो अपने आसपास से ज़्यादा गहरे हैं। इसमें कहीं भी त्वचा का रंग नहीं पढ़ा जाता, और इसे ऐसे लिखने की वजह भी यही है — जो मॉडल गलत होता है वह असमान रूप से गलत होता है, कुछ चेहरों पर औरों से ज़्यादा। यह फ़ैसला नहीं, शुरुआती जगह है: पन्ना बताता है कि चारों में से कौन-सा वह नाप नहीं पाया, हर बिंदु खींचा जा सकता है, और *मैं खुद रखूँगा* पर जाते ही यह पूरी तरह बंद हो जाता है।
- **Google क्या लोड करता है, और उसे क्या नहीं दिया जाता।** विज्ञापन और माप वाली स्क्रिप्ट Google से आती हैं, और दान का बटन Buy Me a Coffee से। इनमें से किसी को भी आपकी तस्वीर, आपके चेहरे, या आपने किस देश का नियम चुना, इनमें से किसी के बारे में कुछ नहीं सौंपा जाता। फ़ाइल पढ़ने, क्रॉप करने, नापने या लिखने वाली हर पंक्ति इसी ऑरिजिन से आती है और रिपॉज़िटरी में मौजूद है।
- **यह ऑफ़लाइन भी चलता है।** नेटवर्क काट दीजिए, टूल जस का तस काम करता रहेगा, क्योंकि इसमें नेटवर्क वाला कोई कदम कभी था ही नहीं। सबसे आसान सबूत यही है।

**खुद जाँच लीजिए।** ऊपर लिखी किसी भी बात को भरोसे पर मानने की ज़रूरत नहीं। यह पेज रिपॉज़िटरी के टेम्पलेट और कॉन्फ़िग से बनता है, एक ऐसी बिल्ड स्क्रिप्ट के ज़रिए जिसे आप पढ़ भी सकते हैं और खुद चला भी सकते हैं। उसका नतीजा `dist` ब्रांच पर कमिट रहता है, यानी जो सर्व हो रहा है और सोर्स से बिल्ड करने पर जो बनता है, दोनों का फ़र्क आप खुद देख सकते हैं: https://github.com/A-Box-of-Tools/website

सबसे पहले पढ़ने लायक फ़ाइलें ये हैं — Content-Security-Policy के लिए `config/site.toml`, नियम-पुस्तिका के लिए `src/specs.js`, जिसमें हर देश के प्रकाशित आँकड़े हैं और साथ में वह प्राधिकरण तथा तारीख भी जिससे और जब हर एक पढ़ा गया। चार निशान लगे बिंदुओं को क्रॉप में बदलने वाले गणित के लिए `src/detect.js` इसके लिए कि चारों बिंदु कैसे ढूँढ़े जाते हैं — एक बाहरी रेखा और दो गहरे धब्बे, बिना किसी मॉडल के —, `src/geometry.js`, और उन दो हेडर-बदलावों के लिए `src/jpeg.js` जो फ़ाइल में छपाई का रिज़ॉल्यूशन डालते हैं और बहुत छोटी अपलोड फ़ाइल को उस साइज़ तक उठा देते हैं जिस पर फ़ॉर्म अड़ा होता है।
