मैं जावा का उपयोग करके सॉकेट पर एकाधिक छवियां भेजने की कोशिश कर रहा हूं लेकिन मुझे छवियों को बाइट सरणी में बदलने के लिए एक तेज़ तरीका चाहिए ताकि मैं उन्हें भेज सकूं। मैंने निम्नलिखित कोड की कोशिश की लेकिन उसने मेरे सी: \ ड्राइव में लगभग 10,000 छवियां लिखीं। डिस्क पर लिखने के बिना इस रूपांतरण को बनाने का कोई तरीका है? धन्यवाद!जावा- bufferedimage को बाइट में परिवर्तित करें [] डिस्क पर लिखने के बिना
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//ImageIO.setUseCache(false);
ImageIO.write(bi.getImage(), "jpg", outputStream);
byte[] imageBytes = outputStream.toByteArray();
ध्यान दें कि एक छोटे से अतिरिक्त समय एक उच्च संपीड़न का उपयोग कर छवि संपीड़न कर (कम गुणवत्ता) जेपीईजी नेटवर्क बहुत समय बचा सकते हैं। मुझे लगता है कि आपको वास्तव में बाइट आकार को वास्तव में भेजा जाना चाहिए, जो शुद्ध 'बुफर्ड इमेज' के साथ काफी बड़ा होगा। बीटीडब्ल्यू - इन छवियों का स्रोत क्या है? यदि यह उदाहरण के लिए स्क्रीनशॉट है, तो अक्सर पीएनजी डिफ़ॉल्ट संपीड़न जेपीईजी की तुलना में एक छोटे बाइट आकार प्रदान कर सकता है। यदि यह लगातार स्क्रीनशॉट थे, शायद एक वीडियो स्ट्रीम भी। –
स्रोत निरंतर स्क्रीनशॉट है जो मैं अनिवार्य रूप से स्ट्रीम में बना रहा हूं। लेकिन हां, मुझे यह पता लगाने की जरूरत है कि उन्हें डिस्क पर लिखे बिना छवियों को कैसे संपीड़ित किया जाए। यह मेरा अंतिम लक्ष्य – tier1