मुझे पता है कि कोई .NET फ़ंक्शन नहीं है जो जांच के लिए मौजूद है, लेकिन क्या यह एक एल्गोरिदम है या बाइट सरणी का उपयोग करने से पहले एक बाइट वैध छवि है या नहीं, यह जांचने का आसान और प्रभावी तरीका है। मुझे इसकी आवश्यकता है क्योंकि मैं एक सर्वर पर अलग-अलग आदेश भेज रहा हूं जो लगातार क्लाइंट को सुन रहा है और कमांड में से एक सर्वर के कंप्यूटर का स्क्रीनशॉट प्राप्त करना है।कैसे जांचें कि एक बाइट सरणी वैध छवि है या नहीं?
उत्तर
आप बाइट सरणी से एक छवि उत्पन्न करने का प्रयास कर सकते हैं और ArgumentException
की जांच कर सकते हैं यदि यह नहीं है।
public static bool IsValidImage(byte[] bytes)
{
try {
using(MemoryStream ms = new MemoryStream(bytes))
Image.FromStream(ms);
}
catch (ArgumentException) {
return false;
}
return true;
}
मुझे नहीं लगता कि यह "बाइट सरणी का उपयोग करने से पहले जांच कर रहा है" –
जैसा कि ध्यान दिया गया है, इसे किसी छवि में लोड करने का प्रयास करना एकमात्र असफल-सुरक्षित तरीका है। आप [अपेक्षित] छवि प्रकार के आधार पर मैजिक नंबर उर्फ फ़ाइल शीर्षलेख देख सकते हैं। उदाहरण के लिए, एक * .PNG फ़ाइल के पहले 8 ओक्टेट्स हेक्स में, कर रहे हैं:
0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A
http://en.wikipedia.org/wiki/Portable_Network_Graphics#File_header
छवि फ़ाइलों के अधिकांश अन्य प्रकार के समान जादुई करिश्मों नंबर हैं।
लेकिन यह जांचना वास्तव में आपको नहीं बताएगा कि फ़ाइल वैध छवि फ़ाइल है या नहीं। इसके बाद आपको पता चलेगा कि मैजिक नंबर इंगित करता है कि इसकी एक प्रकार की फाइल एक्स है। इसे अभी भी छोटा कर दिया जा सकता है या अन्यथा दूषित हो सकता है, या यहां तक कि कुछ और भी पूरी तरह से हो सकता है जो कि ऑक्टेट्स का सही अनुक्रम होता है सही जगह।
एक जेपीईजी के लिए आप जांच सकते हैं कि पहले दो बाइट 0xFF, 0xD8 हैं और अंतिम दो 0xFF, 0xD9 हैं। बेशक यह अभी भी संभव है कि छवि डेटा ईओआई टैग से मेल खाएगा, लेकिन यह दुर्लभ होना चाहिए।
मेरे हिसाब से, यदि आप केवल छवि इनपुट (उचित छवि) चाहते हैं, तो आप इस तरह इनपुट क्षेत्र की विशेषता को स्वीकार के साथ जाना चाहिए:
इनपुट प्रकार = "फाइल" नाम = "uploadedFile" id = " imageContent "class =" required "accept =" image/* "/>
यह आपको इनपुट में केवल छवियां देगा। तो, आप बैकएंड के लिए स्वतंत्र रूप से कोड कर सकते हैं। छवि के बारे में चिंता किए बिना मान्य है या नहीं।
और अगर आप की तरह चाहते हैं यहां तक कि आप विशिष्ट छवि के प्रकार का उल्लेख कर सकते हैं:
इनपुट प्रकार = "फाइल" नाम = "uploadedFile" id = "imageContent" class = "आवश्यक" स्वीकार = "image/jpeg, छवि/gif, image/png ">
यह मानता है कि उपयोगकर्ता एक गैर-दुर्भावनापूर्ण उपयोगकर्ता है, ब्राउज़र सही ढंग से इन विशेषताओं का सही ढंग से समर्थन करता है, और कुछ अन्य चीजों पर विचार करने के लिए। हमेशा जितना संभव हो सके अपने बैक-एंड को सुरक्षित करें, क्योंकि क्लाइंट-साइड सत्यापन, दुख की बात है, अविश्वसनीय है। –
- 1. जांचें कि बाइट सरणी 0xff
- 2. कैसे जांचें कि सरणी शून्य या खाली है या नहीं?
- 3. कैसे जांचें कि सरणी खाली नहीं है या नहीं?
- 4. जांचें कि java.lang.reflect.Field प्रकार एक बाइट सरणी है
- 5. कक्षा का नाम वैध है या नहीं, यह कैसे जांचें?
- 6. जांचें कि सरणी खाली है या शून्य
- 7. जांचें कि छवि एक जेपीईजी
- 8. जांचें कि क्या वैरिएबल एक वैध नोड तत्व है
- 9. डिकोड बाइट सरणी है कि जावा
- 10. सरणी सूची क्या है या नहीं जांचें?
- 11. कैसे जांचें कि एक डबल शून्य है या नहीं?
- 12. .NET कैसे जांचें कि पथ एक फ़ाइल है या नहीं?
- 13. कैसे जांचें कि एक गतिशील वस्तु सी # में एक सरणी है या नहीं?
- 14. जांचें कि छवि मौजूद है php
- 15. जांचें कि सॉकेट कनेक्ट है या नहीं
- 16. छवि दृश्य में छवि का बाइट सरणी
- 17. एक छवि है कि एक बाइट सरणी में आयोजित किया जाता है KB
- 18. कैसे जांचें कि अपलोड की गई फ़ाइल माइम प्रकार के बिना एक छवि है या नहीं?
- 19. जांचें कि सरणी PHP
- 20. कैसे जांचें कि सरणी 2.8 में एक विशेष मान है?
- 21. जांचें कि फ़ाइल मौजूद है या नहीं,
- 22. जांचें कि ऑब्जेक्ट्स की एक सरणी अंडरस्कोर
- 23. एक बाइट सरणी
- 24. रेल में छवि मौजूद है या नहीं, यह कैसे जांचें?
- 25. कैसे जांचें कि एक चर में संग्रहीत एक दिया गया फ़ाइल डिस्क्रिप्टर अभी भी वैध है या नहीं?
- 26. सेलेनियम - जांचें कि कोई छवि पृष्ठ
- 27. जांचें कि स्ट्रिंग में सरणी
- 28. जावा जांचें कि सरणी [] आइटम मौजूद है
- 29. jQuery: जांचें कि छवि मौजूद है
- 30. कैसे जांचें कि कोई संपत्ति मौजूद है या नहीं?
प्रत्येक छवि में एक निश्चित प्रारूप में एक शीर्षलेख होता है। आप हमेशा यह जांच सकते हैं। –