2010-10-15 12 views

उत्तर

16

आप जावा के util.List से परिचित हैं, छवि और BufferedImage के बीच का अंतर सूची और LinkedList के बीच अंतर के समान है।

छवि एक सामान्य अवधारणा है और BufferedImage सामान्य अवधारणा के ठोस कार्यान्वयन है; बीएमडब्ल्यू की तरह एक कार का एक बनाना है।

13

छवि एक सार श्रेणी है। आप सीधे छवि को तुरंत चालू नहीं कर सकते हैं। BufferedImage एक वंशज है, और आप उस को तत्काल कर सकते हैं। इसलिए, यदि आप अमूर्त वर्ग और विरासत को समझते हैं, तो आप समझेंगे कि प्रत्येक का उपयोग कब किया जाए।

उदाहरण के लिए, यदि आप एक से अधिक छवि वंशज उपयोग कर रहे थे, वे कुछ सामान्य गुण है, जो छवि से लिए गए हैं साझा करने के लिए जा रहे हैं।

आप एक समारोह है कि एक पैरामीटर के रूप वंशज में से किसी तरह ले आप कुछ इस तरह कर सकता हैं लिखना चाहते थे, तो:

function myFunction(Image myImage) { 
    int i = myImage.getHeight(); 
    ... 
} 

फिर आप इसे पारित एक BufferedImage या एक VolatileImage द्वारा समारोह कह सकते हैं।

BufferedImage myBufferedImage; 
VolatileImage myVolatileImage; 
... 
myFunction(myVolatileImage); 
myFunction(myBufferedImage); 

आप एक छवि को BufferedImage में कनवर्ट नहीं करेंगे क्योंकि आपके पास कभी छवि नहीं होगी।

7

Image और BufferedImage के बीच क्या अंतर है?

के रूप में छवियाँ

  • java.awt.Image वर्ग के साथ काम करने के लिए Oracle जावा ट्यूटोरियल में कहा गया है कि सुपर क्लास पिक्सल के आयताकार सरणियों के रूप में चित्रमय छवियों का प्रतिनिधित्व करता है।
  • java.awt.image.BufferedImage क्लास, जो छवि वर्ग को विस्तारित करता है ताकि एप्लिकेशन को छवि डेटा के साथ सीधे संचालित करने की अनुमति मिल सके (उदाहरण के लिए, पिक्सेल रंग को पुनर्प्राप्त या स्थापित करना)। आवेदन सीधे इस वर्ग के उदाहरण बना सकते हैं।

BufferedImage कक्षा जावा 2 डी तत्काल मोड इमेजिंग एपीआई की आधारशिला है। यह छवि को स्मृति में प्रबंधित करता है और पिक्सेल डेटा को संग्रहीत करने, व्याख्या करने और प्राप्त करने के तरीकों को प्रदान करता है। चूंकि BufferedImage छवि का एक उप-वर्ग है, इसे ग्राफिक्स और ग्राफिक्स 2 डी विधियों द्वारा प्रस्तुत किया जा सकता है जो छवि पैरामीटर स्वीकार करते हैं।

एक बुफर्ड इमेज अनिवार्य रूप से एक सुलभ डेटा बफर वाला एक छवि है। इसलिए BufferedImage के साथ सीधे काम करने के लिए यह अधिक कुशल है। ए बुफर्ड इमेज में कलरमोडेल और छवि डेटा का रास्टर है। कलरमोडेल छवि के पिक्सेल डेटा की रंग व्याख्या प्रदान करता है।


मैं एक BufferedImage सीधे एक छवि स्रोत "image.png" से बना सकते हैं?

निश्चित रूप से।

BufferedImage img = ImageIO.read(getClass().getResource("/path/to/image")); 
संबंधित मुद्दे