में BufferedImage में रंगों को प्रतिस्थापित करने के लिए कैसे मैं सोच रहा हूं कि BufferedImage में रंग बदलने के लिए एक और अधिक कुशल विधि है या नहीं। फिलहाल मैं निम्न विधि का उपयोग करता हूं:JAVA
मैं प्रतिस्थापित करने के लिए रंगों के साथ एक सरणी भरता हूं और रंगों को पारदर्शिता समेत बदलने के लिए भरता हूं। फिर मैं छवि में हर पिक्सेल के माध्यम से लूप। यदि यह सरणी में से किसी एक रंग से मेल खाता है तो मैं इसे सरणी से नए रंग के साथ बदल देता हूं। यहां कोड है:
Graphics2D g2;
g2 = img.createGraphics();
int x, y, i,clr,red,green,blue;
for (x = 0; x < img.getWidth(); x++) {
for (y = 0; y < img.getHeight(); y++) {
// For each pixel in the image
// get the red, green and blue value
clr = img.getRGB(x, y);
red = (clr & 0x00ff0000) >> 16;
green = (clr & 0x0000ff00) >> 8;
blue = clr & 0x000000ff;
for (i = 1; i <= Arraycounter; i++) {
// for each entry in the array
// if the red, green and blue values of the pixels match the values in the array
// replace the pixels color with the new color from the array
if (red == Red[i] && green == Green[i] && blue == Blue[i])
{
g2.setComposite(Transparency[i]);
g2.setColor(NewColor[i]);
g2.fillRect(x, y, 1, 1);
}
}
}
जिन छवियों के साथ मैं काम कर रहा हूं वे छोटे, 20x20 पिक्सल या इससे भी कम हैं। फिर भी ऐसा लगता है कि ऐसा करने के लिए एक और अधिक प्रभावी तरीका होना चाहिए।
शायद यदि आप मूल समस्या की व्याख्या करते हैं तो हम – medopal
में सहायता कर सकते हैं कोड को मानचित्र में एक किंवदंती के रूप में उपयोग करने के लिए छवियां बनाती हैं। हमारे पास चार रंगों के साथ टेम्पलेट छवियों का एक सेट है। काला, लाल, हरा और नीला। मानचित्र में विषयगत प्रतिनिधित्व के आधार पर टेम्पलेट छवियों को सही रंग मिलना चाहिए। काला पृष्ठभूमि रंग में परिवर्तित हो जाएगा, सही सीमा रंग लाल, हरा एक हैश पैटर्न और नीले क्षेत्र पारदर्शी हो जाएगा। – Rene