अल्फा खो नहीं गया है।
आपको या तो (int, बूलियन) कन्स्ट्रक्टर का उपयोग करना चाहिए जो पिक्सेल जानकारी लेता है और निर्दिष्ट करता है कि इसमें बूलियन या कन्स्ट्रक्टर के साथ अल्फा मान हैं जो 4 मान, लाल, हरा, नीला और अल्फा लेता है।
(int, int, int, int) JavaDoc
से निर्माता जानकारी कोड को छोटा करने के लिए, आप हमेशा Color color = new Color(i.getRGB(x, y), true);
जो रंग निर्माता कि पिक्सेल जानकारी करता है बताता है साथ निम्नलिखित कोड के सभी जगह ले सकता है अल्फा मान होता है।
(पूर्णांक, बूलियन) निर्माता से JavaDoc
ध्यान दें कि कभी कभी जब अल्फा को पुन: प्राप्त जानकारी निम्नलिखित तरीके -1 वापस कर सकती है, ऐसी स्थिति में इसका मतलब है इसे वापस करने के लिए 255 लूप होता है, ताकि आप 256- करनी होगी वास्तविक अल्फा मान प्राप्त करने के लिए 1। यह स्निपेट दर्शाता है कि एक छवि को कैसे लोड किया जाए और कुछ निश्चित निर्देशांकों पर उस छवि का रंग प्राप्त करें, इस मामले में, 0,0। निम्नलिखित उदाहरण आपको अल्फा समेत प्रत्येक रंग मान को पुनर्प्राप्त करने और इसे नए रंग में पुनर्निर्मित करने का तरीका दिखा सकता है।
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.imageio.ImageIO;
public class main {
public static void main(String [] args){
BufferedImage image = null;
try {
image = ImageIO.read(new URL("image.png"));
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
int pixel = image.getRGB(0, 0);
int alpha = (pixel >> 24) & 0xff;
int red = (pixel >> 16) & 0xff;
int green = (pixel >> 8) & 0xff;
int blue = (pixel >> 0) & 0xff;
Color color1 = new Color(red, green, blue, alpha);
//Or use
Color color2 = new Color(image .getRGB(0, 0), true);
}
}
BufferedImages getRGB (int, int) JavaDoc के रूप में यह कहते हैं जैसा कि आप देख सकते हैं:
Returns an integer pixel in the default RGB color model (TYPE_INT_ARGB) and default sRGB colorspace. Color conversion takes place if this default model does not match the image ColorModel. There are only 8-bits of precision for each color component in the returned data when using this method.
जो अल्फा मूल्य भी लिया गया है इसका मतलब है।
मुझे बिल्कुल यकीन नहीं है कि यह वर्ग कैसे काम करता है, लेकिन आप 'getRGB' नामक फ़ंक्शन का उपयोग कर रहे हैं और फिर आप हैरान हैं कि यह केवल आरजीबी प्राप्त करता है? – murgatroid99
हां यह सच है, लेकिन मैंने पहले जांच की है कि पिक्सेल में getRGB() विधि का उपयोग करके कोई अल्फा मान होता है। http://stackoverflow.com/questions/10419838/how-can-i-find-out-where-a-bufferedimage-has-alpha-in-java – Rapti
मैं देखता हूं। "अल्फा खो जाता है" से आपका क्या मतलब है? – murgatroid99