Click here to Skip to main content
15,892,059 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
Java


class mm
{
int width = gtest.greenImage.getWidth();
int height = gtest.greenImage.getHeight();
WritableRaster raster = gtest.greenImage.getRaster();
for (int xx = 0; xx < width; xx++) {
for (int yy = 0; yy < height; yy++) {
Color c = new Color(gtest.greenImage.getRGB(xx, yy));
int[] pixels = raster.getPixel(xx, yy, (int[]) null);
pixels[0] = c.getGreen() ;
l1.add(c.getGreen());
raster.setPixel(xx, yy, pixels); }}
int width1 = gtest.blueImage.getWidth();
int height1 = gtest.blueImage.getHeight();
WritableRaster raster1 = gtest.blueImage.getRaster();
for (int xx = 0; xx < width1; xx++) {
for (int yy = 0; yy < height1; yy++) {
Color c = new Color(gtest.blueImage.getRGB(xx, yy));
int[] pixels = raster.getPixel(xx, yy, (int[]) null);
pixels[1] = c.getBlue() ;
l2.add(c.getBlue());
raster1.setPixel(xx, yy, pixels);
}}
int width2 = gtest.redImage.getWidth();
int height2 = gtest.redImage.getHeight();
WritableRaster raster2 = gtest.redImage.getRaster();
for (int xx = 0; xx < width2; xx++) {
for (int yy = 0; yy < height2; yy++) {
Color c = new Color(gtest.redImage.getRGB(xx, yy));
int[] pixels = raster.getPixel(xx, yy, (int[]) null);
pixels[2] = c.getRed() ;
l3.add(c.getRed());
raster2.setPixel(xx, yy, pixels);}
}
}
}
in above code i am giving three different plane (red plane,green plane,blue plane)that each plane reading pixel by pixel .i am storing each pixel in array list according to that image color . i want retrieve original image by using three different plane .is it possible and in above code if i add three array list in one image is it found original image please help me how form by using three different plane into one image
Posted
Updated 23-Sep-13 23:48pm
v3
Comments
phil.o 23-Sep-13 5:32am    
It seems to be a repost. Why don't you just edit your original question here instead of posting a new question on the same problem each and every day?
ramamne9595@gmail.com 23-Sep-13 5:38am    
ok i do not know those things i will be change thanks for suggest me

Move your ImageIO.write outside of your loop.
Currently you're creating a new image file for every row of pixels in the source file.

Change
Java
for (int xx = 0; xx < width; xx++) {
   for (int yy = 0; yy < height; yy++) {
      Color c = new Color(image.getRGB(xx, yy));
      int[] pixels = raster.getPixel(xx, yy, (int[]) null);
      {
         pixels[0] = c.getRed() +50;
         pixels[1] = c.getGreen();
         pixels[2] = c.getBlue() + 50;
         raster.setPixel(xx, yy, pixels);
      }
      ImageIO.write(image, "png",new File("200.png"));
   }
}

to
Java
for (int xx = 0; xx < width; xx++) {
   for (int yy = 0; yy < height; yy++) {
      Color c = new Color(image.getRGB(xx, yy));
      int[] pixels = raster.getPixel(xx, yy, (int[]) null);
      {
         pixels[0] = c.getRed() +50;
         pixels[1] = c.getGreen();
         pixels[2] = c.getBlue() + 50;
         raster.setPixel(xx, yy, pixels);
      }
   }
}
ImageIO.write(image, "png",new File("200.png"));


Hope this helps,
Fredrik
 
Share this answer
 
v2
code for combining r g b plnae into original image
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import javax.imageio.ImageIO;

public class Third {
	static ArrayList<Integer> l1 = new ArrayList<Integer>();
	static ArrayList<Integer> l2 = new ArrayList<Integer>();
	static ArrayList<Integer> l3 = new ArrayList<Integer>();
	static BufferedImage img5;

	public static void main(String[] args) throws IOException {
		
	 
		new First();

		ImageIO.write(First.greenImage, "png", new File("green.png"));
		ImageIO.write(First.redImage, "png", new File("red.png"));
		ImageIO.write(First.blueImage, "png", new File("blue.png"));
//		BufferedImage img = null;
		// try {
		// img = colorImage(ImageIO.read(new File("green.png")));
		// ImageIO.write(img, "png", new File("Test22.png"));
		// } catch (IOException ex) {
		// ex.printStackTrace();
		// }

		// private static BufferedImage colorImage(BufferedImage image) {
		int width = First.greenImage.getWidth();
		int height = First.greenImage.getHeight();
		WritableRaster raster = First.greenImage.getRaster();
		for (int xx = 0; xx < width; xx++) {
			for (int yy = 0; yy < height; yy++) {
				// Color c = new Color(image.getRGB(xx, yy));
				Color c = new Color(First.greenImage.getRGB(xx, yy));

				// Color c2 = new Color(First.blueImage.getRGB(xx, yy));
				// Color c1 = new Color(First.redImage.getRGB(xx, yy));
				int[] pixels = raster.getPixel(xx, yy, (int[]) null);
				pixels[0] = c.getGreen();
				// pixels[1] = c.getGreen()+c2.getBlue()+c1.getRed();
				// pixels[2] = c.getGreen() + c2.getBlue()+c1.getRed();

				l2.add(c.getGreen());
				// l2.add(c2.getBlue());
				// l3.add(c2.getRed());

				// int b=c1.getRed();
				raster.setPixel(xx, yy, pixels);
				// System.out.println(b);
			}
		}
		int width1 = First.blueImage.getWidth();
		int height1 = First.blueImage.getHeight();
		WritableRaster raster1 = First.blueImage.getRaster();
		for (int xx = 0; xx < width1; xx++) {
			for (int yy = 0; yy < height1; yy++) {
				Color c = new Color(First.blueImage.getRGB(xx, yy));
				int[] pixels = raster1.getPixel(xx, yy, (int[]) null);
				pixels[0] = c.getBlue();
				l3.add(c.getBlue());
				raster1.setPixel(xx, yy, pixels);
			}

		}
		int width2 = First.redImage.getWidth();
		int height2 = First.redImage.getHeight();
		WritableRaster raster2 = First.redImage.getRaster();
		for (int xx = 0; xx < width2; xx++) {
			for (int yy = 0; yy < height2; yy++) {
				Color c = new Color(First.redImage.getRGB(xx, yy));
				int[] pixels = raster2.getPixel(xx, yy, (int[]) null);
				pixels[0] = c.getRed();
				l1.add(c.getRed());
				raster2.setPixel(xx, yy, pixels);
			}

		}
		// BufferedImage img1 = new BufferedImage(width, height,
		// BufferedImage.TYPE_INT_RGB);
		int A = 0, B = 0, C = 0;
		int count=0;
//		BufferedImage img1 = First.blueImage;
		BufferedImage im = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
		// for (int
		// l=0,m=0,n=0;l<l1.size()&&m<l2.size()&&n<l3.size();l++,m++,n++)
		// {

		// A=l1.get(l);
		// B=l2.get(m);
		// C=l3.get(n);
		// for (int i = 0; i < width; i++) {
		// for (int j = 0; j < height; j++) {

		// Color clc = new Color(A, B, C);
		// int rgb = clc.getRGB();
		// img1.setRGB(i, j, rgb);
		// break;

		for (int i = 0; i < width; i++) {
			for (int j = 0; j < height; j++) {
				// for (int a : l1) {
				// A = a;
				// for (int b : l2)

				// {B = b;
//				for (int l = j, m = j, n = j; l < l1.size() && m < l2.size()
//						&& n < l3.size();m++,n++,l++) {
					
//					A = l1.get(l);
//					B = l2.get(m);
//					C = l3.get(n);
					// for (int i = 0; i < width; i++) {
					// for (int j = 0; j < height; j++) {
				A=l1.get(count);
				B=l2.get(count);
				C=l3.get(count);
				

					Color clc = new Color(A, B, C);
					int rgb = clc.getRGB();
//					img1.setRGB(i, j, rgb);
					im.setRGB(i, j, rgb);
					count++;
					// break;
					// }
					// break;
					// img1.setRGB(i, j, rgb);
//					break;
					
//				}
//				break;
			}
//			break;
		}
		// }
		// }
		// retrieve image
		File outputfile = new File("last2.png");
		File outputfile1 = new File("last25.png");

		try {
			ImageIO.write(im, "jpg", outputfile);
//			img5 = First.image;
//			ImageIO.write(img5, "png", outputfile1);

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// System.out.println("green color"+l1);
		// System.out.println("blue color"+l2);
		// System.out.println("red color"+l3);
		// System.out.println("blue color"+l2);
		// System.out.println("red color"+l3);

		// return image;

		// }
	}

}<pre lang="java">
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900