本文目录一览:
- 1、请问各位高手,在java中,如何实现输入RGB值改变颜色?
- 2、给定一幅图像,用java读取每个像素的RGB三个颜色值
- 3、java实现提取图片每一点的RGB
- 4、Java中如何将RGB三个颜色的值存放到数组中
请问各位高手,在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 放入了数组中