2014-07-18 8 views
5

मैंने निष्पादन योग्य जार फ़ाइल (ग्रहण का उपयोग करके) बनाई है, वहां छवि (.png) फ़ाइलों का एक सेट है जो जार में लगाया जाना है। तो मैंने परियोजना में /images फ़ोल्डर के अंदर सभी छवियों के साथ एक स्रोत फ़ोल्डर जोड़ा है। कोड ImageIO.read(new File(path);इमेजियो स्ट्रीम से इमेजियो को कैसे पढ़ा जाए: जावा

इससे पहले का उपयोग कर BufferedImage बनाने के लिए इन फ़ाइल का उपयोग करना पड़ता है, पथ मैं ClassName.class.getResource(/image/test.png).toURI();

इस्तेमाल किया जार को क्रियान्वित करने पर प्राप्त करने के लिए, यह त्रुटि फेंक यूआरआई श्रेणीबद्ध

तो अब मैं कर रहा हूँ नहीं है ClassName.class.getResourceAsStream(/image/test.png);

लेकिन इमेजियो को इनपुटस्ट्रीम से कैसे पढ़ा जाए? मैं कलाकारों की कोशिश की के रूप में

InputStreamReader resourceBuff=ClassName.class.getResourceAsStream(/image/test.png); 
ImageIO.read((ImageInputStream) new InputStreamReader(resourceBuff)); 

यह फेंकता त्रुटि InputStreamReader ImageInputStream को

उत्तर

9

ImageIO.read() एक पैरामीटर के रूप InputStream लेता है तो वहाँ ImageInputStream करने के लिए इसे कास्टिंग की कोई अर्थ नहीं है ढाला नहीं जा सकता इस प्रकार है।

दूसरी बात आप क्योंकि ImageInputStreamInputStreamReader जो आप के बारे में सोचा के साथ कोई संबंध नहीं है ImageInputStream के लिए एक InputStreamReader वस्तु डाली नहीं कर सकता।

इसके अलावा getResourceAsStream()InputStream देता है। तो आप इसे सीधे इस तरह कर सकते हैं।

InputStream resourceBuff = YourClass.class.getResourceAsStream(filepath); 
BufferedImage bf = ImageIO.read(resourceBuff); 
4

ImageIO वर्ग read एक InputStream करने के लिए एक उपयोगिता विधि है और एक BufferedImage पैदा करते हैं।

createImageInputStream पर InputStream से उपयोगिता विधि भी है।

संबंधित मुद्दे