मैं वर्तमान में निम्नलिखित कोड का उपयोग कर एक छवि वस्तु में पिक्सेल मूल्यों (मूल रूप से एक java.awt.image.PixelGrabber वस्तु के साथ बनाया) की एक सरणी बदल रही है:जावा के इमेजियो के साथ एक छवि ऑब्जेक्ट में पिक्सल की सरणी चालू करें?
public Image getImageFromArray(int[] pixels, int width, int height) {
MemoryImageSource mis = new MemoryImageSource(width, height, pixels, 0, width);
Toolkit tk = Toolkit.getDefaultToolkit();
return tk.createImage(mis);
}
यह संभव प्राप्त करने के लिए एक ही है इमेजियो पैकेज (ओं) से कक्षाओं का उपयोग करके परिणामस्वरूप मुझे एडब्ल्यूटी टूलकिट का उपयोग करने की ज़रूरत नहीं है?
Toolkit.getDefaultToolkit() 100% विश्वसनीय होना प्रतीत नहीं होता है और कभी-कभी एक AWTError फेंक जाएगा, जबकि ImageIO कक्षाओं हमेशा उपलब्ध होना चाहिए, जिसके कारण मैं अपने विधि बदलने में रुचि रखते हूँ।
धन्यवाद bcash, लेकिन जब मैं उस कोड को आजमाता हूं तो मुझे java.lang.ArrayIndexOutOfBoundsException मिलता है। कोई विचार? –
मुझे लगता है कि यह करीब है, हमें क्रिस से विवरण के साथ अधिक जानकारी की आवश्यकता हो सकती है? ऐसा लगता है कि यह काम करना चाहिए ... आपके इंक क्या हैं? क्या वे आरजीबी हैं? ARGB? कुछ प्रकार के पैक प्रारूप? –
पिक्सेल एक पिक्सेलग्राबर से आ रहे हैं जैसे: int [] पिक्सल = नई int [चौड़ाई * ऊंचाई]; पिक्सेलग्राबर पीजी = नया पिक्सेलग्राबर (आईएमजी, 0, 0, चौड़ाई, ऊंचाई, पिक्सल, 0, चौड़ाई); pg.grabPixels(); –