2013-10-06 5 views
12

जब आप कोई छवि खींचते हैं तो उसे एक छवि पर्यवेक्षक की आवश्यकता होती है। अब तक जो मैं समझता हूं उससे एक बुफर्ड इमेज एक छवि पर्यवेक्षक है। लेकिन मेरा सवाल यह है कि, एक छवि पर्यवेक्षक को परिभाषित करता है और यह क्या करता है? मैं काफी उलझन में हूँ।एक छवि ऑब्सर्वर क्या है?

+0

आप अपनी छवि कैसे आकर्षित कर रहे हैं? क्या आप कुछ कोड प्रदान कर सकते हैं? – Heskja

+0

मैं एक बुफर्ड इमेज का उपयोग कर रहा हूं, इसलिए मैं इसे शून्य पर सेट कर रहा हूं, लेकिन जब से मैं इसमें आया, तो मैं क्या करना चाहता हूं इसका स्पष्टीकरण ढूंढना चाहता था। मैंने Google की खोज की लेकिन यह वास्तव में क्या है इसका स्पष्टीकरण नहीं मिला। – Troubleshoot

उत्तर

11

सबसे पहले, ImageObserver एक इंटरफ़ेस है। docs के अनुसार:

एक अतुल्यकालिक रूप में छवि का निर्माण किया है छवि जानकारी के बारे में सूचनाएं प्राप्त करने के लिए अद्यतन इंटरफ़ेस।

दूसरे शब्दों में, यह चित्र जो पहले पूरी तरह से बनाया संशोधित किया जा सकता का उपयोग करने के एक वस्तु उन्मुख तरीका है। विधि imageUpdate(Image img, int infoflags, int x, int y, int width, int height) किसी भी समय छवि को संशोधित करने के लिए बुलाया जाता है। यह true देता है अगर यह और परिवर्तनों के बारे में अधिसूचित होना चाहता है और false अन्यथा। इस विधि का उपयोग आकार, संकल्प, रंग इत्यादि को मजबूर करने के लिए किया जा सकता है। यह आपको त्रुटियों का कुछ नियंत्रण भी देता है (ERROR ध्वज)। अधिक जानकारी के लिए this देखें।

पर्यवेक्षक भी छवि के बारे में महत्वपूर्ण जानकारी संसाधित कर सकते हैं - उदाहरण के लिए अगर हम स्क्रीन पर एक छवि ड्राइंग कर रहे हैं और करने के लिए एक बड़ा एक से पहले प्रतिपादन पूरा हो गया है यह बदलने के लिए, वहाँ एक रास्ता सूचित करने के लिए किया जाना है जो कुछ भी हम इस पर चित्रण कर रहा है कि आयाम बदल गया है (अधिक जगह आवंटित करें) और इसे परिवर्तनों से निपटना होगा। तथ्य यह है कि ImageObserverअसीमित उस मामले में बेहद महत्वपूर्ण है।

9

ImageObserver एक इंटरफ़ेस है जिसमें छवि लोडिंग की स्थिति की अधिसूचना को संभालने के तरीके हैं। यह आवश्यकतानुसार redisplay के लिए इसका उपयोग कर सकते हैं। JFrame और Applet दोनों ImageObserver इंटरफ़ेस को लागू करते हैं।

उपयोगकर्ताओं को रखने के लिए एक छवि के लोड होने के बारे में सूचित

  • ImageObserver इंटरफ़ेस - लोडिंग प्रक्रिया की निगरानी में सक्षम बनाता है ताकि उपयोगकर्ताओं को सूचित किया जा सकता है और छवि asap इस्तेमाल किया जा सकता है एक बार यह लदा हुआ।

  • छवि को असीमित रूप से लोड करना - छवि को तैयार होने पर कैसे पता चलेगा। बहुत पहले से कुछ भी छवि के बारे में जाना जाता है getImage() विधि रिटर्न, -

    • एक छवि तैयार है।

      imageUpdate(Image img, int infoflags, int x, int y, int width, int height) 
      
  • नोट: java.awt.Component लागू करता ImageObserver, सभी उपवर्गों साथ ही करते हैं!

  • g.drawImage(imge, 0,0, this) - यह ImageObserver उदाहरण को संदर्भित करता है।

  • imageUpdate() - जब भी आवश्यक हो ImageObserver द्वारा कॉल किया गया। आप स्पष्ट रूप से पर कॉल नहीं करते हैं!

    • यदि छवि पूर्ण हो गई है, तो false लौटाता है।
    • यदि छवि पूर्ण नहीं है और अपडेट होने की आवश्यकता है, तो true लौटाता है।
  • ImageObserver.ALLBITS = 32

  • विभिन्न स्थिरांक infoflags तर्क है, जो इंगित करता है कि सभी जानकारी उपलब्ध है या नहीं के रूप में जोड़ दिया जाता है।

    info flag table

this और Oreilly's explanation पर एक नजर डालें। Also take a look at this manual it is really helpful

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