您的位置:

javargb,javargb颜色输出

本文目录一览:

请问各位高手,在java中,如何实现输入RGB值改变颜色?

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.Color;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class RGB extends JFrame implements ActionListener{

JTextField t1,t2,t3;

JLabel b1,b2,b3;

JButton jb;

JPanel jp;

    public RGB(){

       super("RGB");

       jp=new JPanel();

       b1=new JLabel("R");

       b2=new JLabel("G");

       b3=new JLabel("B");

       t1=new JTextField(3);

       t2=new JTextField(3);

       t3=new JTextField(3);

       jb=new JButton("确定");

       jb.addActionListener(this);

       jp.add(b1);

       jp.add(t1);

       jp.add(b2);

       jp.add(t2);

       jp.add(b3);

       jp.add(t3);

       jp.add(jb);

       jp.setLayout(new FlowLayout());

       

       add(jp,BorderLayout.CENTER);

       setSize(200,200);

       

       setResizable(false);

  setDefaultCloseOperation(this.DISPOSE_ON_CLOSE);

  setVisible(true);

    }

       public void actionPerformed(ActionEvent e){

   if(e.getSource().getClass().getSimpleName().equals("JButton")){

   int r=Integer.parseInt(t1.getText());

   int g=Integer.parseInt(t2.getText());

   int b=Integer.parseInt(t3.getText());

   if(r=0  r=255  g=0  g=255  b=0  b=255){

   Color c=new Color(r,g,b);

   jp.setBackground(c);

   }else{

   System.out.println("请输入(0-255)的整数!");

   }

   }

}

 

public static void main(String[] args) {

new RGB();

}

}

给定一幅图像,用java读取每个像素的RGB三个颜色值

int rgbR;

int rgbG;

int rgbB;

int minx = 0;

int miny = 0;

try {

File file = new File("E:\\dd.png");

BufferedImage image = ImageIO.read(file);

int width = image.getWidth();//图片宽度

int height = image.getHeight();//图片高度

for (int i = minx; i width; i++) {

for (int j = miny; j height; j++) {

int pixel = image.getRGB(i, j); // 下面三行代码将一个数字转换为RGB数字

rgbR = (pixel 0xff0000) 16;

rgbG = (pixel 0xff00) 8;

rgbB = (pixel 0xff);

System.out.println("i=" + i + ",j=" + j + ":(" + rgbR + "," + rgbG + "," + rgbB + ")");

}

}

System.out.println("图片宽度为:"+width+",高度为:"+height);

} catch (IOException e) {

System.out.println("读取文件出错");

e.printStackTrace();

}

java实现提取图片每一点的RGB

public class TestActionAction extends Action {

public void doSome(){

try {

//

//ImageIO.read("");

ImageIcon[] image={new ImageIcon("G://公司项目/Images/Map/157.png"),new ImageIcon("G://公司项目/Images/Map/158.png"),new ImageIcon("G://公司项目/Images/Map/159.png"),new ImageIcon("G://公司项目/Images/Map/160.png")};

//BufferedImage相当于一个画布,在存在于内存中

BufferedImage img=new BufferedImage((image.length)*256 ,256,BufferedImage.TYPE_INT_RGB);

//必须创建Graphics2D对象和drawImage,不然画出来的只是image.getIconWidth*image.getIconHeight()那么大一个全黑图像

Graphics2D gs=(Graphics2D)img.getGraphics();

for(int i=0;iimage.length;i++){

String k="";

gs.

}

gs.drawImage(image[0].getImage(), 0, 0, image[0].getImageObserver());

int huabuwid=img.getWidth();

int huabuhid=img.getHeight();

for(int i=0;ihuabuwid;i++){

for(int j=0;jhuabuhid;j++){

//基于坐标取出相对应的RGB

int rgb=img.getRGB(i, j);

int R = (rgb 0xff0000) 16;

int G = (rgb 0xff00) 8;

int B = (rgb 0xff);

rgb=((R*256)+G)*256+B;

//把RGB值设置进相对应的坐标

img.setRGB(i, j, rgb);

}

}

gs.drawImage(image[1].getImage(), 256, 0, image[1].getImageObserver());

for(int i=0;ihuabuwid;i++){

for(int j=0;jhuabuhid;j++){

//基于坐标取出相对应的RGB

int rgb=img.getRGB(i, j);

int R = (rgb 0xff0000) 16;

int G = (rgb 0xff00) 8;

int B = (rgb 0xff);

rgb=((R*256)+G)*256+B;

//把RGB值设置进相对应的坐标

img.setRGB(i, j, rgb);

}

}

gs.drawImage(image[2].getImage(), 512, 0, image[2].getImageObserver());

for(int i=0;ihuabuwid;i++){

for(int j=0;jhuabuhid;j++){

//基于坐标取出相对应的RGB

int rgb=img.getRGB(i, j);

int R = (rgb 0xff0000) 16;

int G = (rgb 0xff00) 8;

int B = (rgb 0xff);

rgb=((R*256)+G)*256+B;

//把RGB值设置进相对应的坐标

img.setRGB(i, j, rgb);

}

}

gs.drawImage(image[3].getImage(), 768, 0, image[3].getImageObserver());

for(int i=0;ihuabuwid;i++){

for(int j=0;jhuabuhid;j++){

//基于坐标取出相对应的RGB

int rgb=img.getRGB(i, j);

int R = (rgb 0xff0000) 16;

int G = (rgb 0xff00) 8;

int B = (rgb 0xff);

rgb=((R*256)+G)*256+B;

//把RGB值设置进相对应的坐标

img.setRGB(i, j, rgb);

}

}

//释放Graphics2D对象

gs.dispose();

//以流的方式保存文件

FileOutputStream outfile = new FileOutputStream("G:/1.png" );

ImageOutputStream i=ImageIO.createImageOutputStream(outfile);

ImageIO.write(img, "png", i);

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static void main(String[] args){

new TestActionAction().doSome();

}

}

Java中如何将RGB三个颜色的值存放到数组中

先定义一个类:其中三个属性,R、G、B

public class ColorVo{

private int r;

private int g;

private int b;

getter setter

}

然后创建一个 ColorVo 数组

ColorVo[] array = new ColorVo[n];

n表示数组长度。

然后

ColorVo cv = new ColorVo();

cv.setR(1);

cv.setG(2);

cv.setB(3);

array[i] = cv

i表示数组的下表

此时就已经将ColorVo 放入了数组中