मैं जावा ग्राफिक्स (सामान्य रूप से कंप्यूटर ग्राफिक्स) और स्टैक ओवरफ़्लो में नया हूं, इसलिए कृपया मेरी मदद करें और मेरी समस्या को बेहतर तरीके से मेरी मदद करें।BufferedImage प्रदर्शित नहीं कर रहा है (सभी काला) लेकिन छवि प्रदर्शित की जा सकती है
फिलहाल, मैं जावा जीयूआई में मूल छवि के साथ एक बुफर्ड इमेज प्रदर्शित करने की कोशिश कर रहा हूं। यह मेरा कोड है:
Image oriImage = robot.getQwerkController().getVideoStreamService().getFrame(); //load the original image
Graphics2D hi = bufferedImage.createGraphics();
hi.drawImage(oriImage, 0,0, null); //draw the original image into the BufferedImage
hi.dispose();
images[0].put(oriImage, 1); //draws the original image in the first frame
images[1].put(bufferedImage, 2); //draws the BufferedImage in the second frame
और "डाल" समारोह इस प्रकार है:
public synchronized void put(Image image, int frameNumber) {
icon.setImage(image); //sets the image displayed by this icon
display.paintImageIcon(icon, frameNumber); //paint the image onto the gui
imageSet = true;
notifyAll();
}
हालांकि, जिसके परिणामस्वरूप जीयूआई के रूप में इस प्रकार है
तो छवि काम करता है , लेकिन BufferedImage नहीं करता है। मुझे लगता है कि यह काम करता है क्योंकि BufferedImage छवि का एक उप-वर्ग है ... कोई विचार? कृपया मुझे बताएं कि अतिरिक्त कोड की जरूरत है जाने ~ अग्रिम :) धन्यवाद
संपादित करें 1:
मैं कुछ परीक्षण, और बदले मूल छवि का उपयोग करने का, मैं एक पूरी नई BufferedImage Graphics2D करने के लिए बनाया था, और प्रयोग किया जाता है एक रेखा खींचें और फिर कोशिश करें और इसे प्रदर्शित करें।
तो यह काम करता है: यहाँ परिणाम है। इसलिए मूल छवि (या रूपांतरण जो हुआ) के साथ कुछ गलत होना चाहिए
संपादित करें 2: मैंने bufferedImage के साथ एक ही चीज़ की और एक रेखा खींची। नतीजा EDIT 1 जैसा ही है, और इसलिए मुझे लगता है कि drawImage फ़ंक्शन के साथ कुछ समस्या है।
संपादित करें 3: मैंने चित्र ड्राइंग को पूरा करने के लिए ड्रॉ इमेज के चारों ओर थोड़ी देर लूप डालकर समस्या को ठीक किया है (क्योंकि यह अभी तक एक छवि को चित्रित नहीं कर रहा है, तो यह झूठा लौटाता है) और यह काम करता है! : डी
boolean x = false;
while (!x) {
x = hi.drawImage(oriImage, 0,0, null); //draw the original image into the BufferedImage
}
क्या आप कोड को पोस्ट कर सकते हैं कि आप प्रारंभ में 'bufferedImage' ऑब्जेक्ट कैसे बनाते हैं। – cgull
'// मूल छवि लोड करें 'सिंक्रनाइज़ (छवि लोड होने तक प्रतीक्षा करता है) या असीमित रूप से (छवि लोड होने पर कोड जारी रहता है)? बेहतर सहायता के लिए जल्द ही, एक [एसएससीसीई] (http://sscce.org/) पोस्ट करें। –
यदि मैं एक एसएससीसीई पोस्ट कर सकता हूं, तो समस्या यह है कि पूरी परियोजना काफी बड़ी है और बहुत से कोड समस्या के लिए अप्रासंगिक हैं। (अब हम जो छवि प्राप्त कर रहे हैं वह एक वेबकैम से है जो रोबोट पर लोड हो चुकी है) हालांकि मैं कुछ और जानकारी के लिए संपादित करूंगा। धन्यवाद! –