java - JLabel से BufferedImage में आइकन कैसे परिवर्तित करें?




swing (3)

आप छवि को छवि में नहीं डाल सकते क्योंकि यह एक उपवर्ग नहीं है। ImageIcon के पास एक विधि getImage() छवि है getImage() जो देता है और छवि, यद्यपि। यहां देखें

सरल, बहुत सीधे आगे, लेकिन लगता है कि चाचा गूगल और मुझे भ्रमित हो रहा है।

मेरे पास एक JLabel जो पहले से ही अपना Icon

मैं JLabel से प्राप्त किए गए Icon को BufferedImage में कैसे रूपांतरित कर सकता हूं?

क्या कोई आस पास है: मैंने इस तरह कई कास्टिंगों की कोशिश की ..

 final BufferedImage bf1 = (BufferedImage)((Image)jll_img.getIcon());

.. लेकिन यह असफल रहा।


यह सबसे सरल तरीका है:

labelPicture = new JLabel("Picture");
labelPicture.setIcon(new ImageIcon("picture.png"));
.
.
ImageIcon icon = (ImageIcon)labelPicture.getIcon()
BufferedImage img = (BufferedImage)((Image) icon.getImage());

@ एंड्रयू थॉम्पसन के उत्तर पर विस्तार करने के लिए, ध्यान दें कि Icon इंटरफ़ेस लागू करने वाला कोई ऑब्जेक्ट जानता है कि कैसे कुछ पेंट करना है, लेकिन यह अभी तक ऐसा करने के लिए नहीं कहा गया है। इसके विपरीत, एक BufferedImage में "छवि डेटा का एक सुलभ बफ़र" है, जो कि आपके प्रोग्राम को paintIcon() विधि को कॉल करके प्रस्तुत करना चाहिए। यहाँ एक संबंधित उदाहरण है





jlabel