import javaawtBorderLayout;
import javaawtFlowLayout;
import javaawteventActionEvent;
import javaawteventActionListener;
import javaawtColor;
import javaxswingJButton;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJPanel;
import javaxswingJTextField;
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("确定");
jbaddActionListener(this);
jpadd(b1);
jpadd(t1);
jpadd(b2);
jpadd(t2);
jpadd(b3);
jpadd(t3);
jpadd(jb);
jpsetLayout(new FlowLayout());
add(jp,BorderLayoutCENTER);
setSize(200,200);
setResizable(false);
setDefaultCloseOperation(thisDISPOSE_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(egetSource()getClass()getSimpleName()equals("JButton")){
int r=IntegerparseInt(t1getText());
int g=IntegerparseInt(t2getText());
int b=IntegerparseInt(t3getText());
if(r>=0 && r<=255 && g>=0 && g<=255 && b>=0 && b<=255){
Color c=new Color(r,g,b);
jpsetBackground(c);
}else{
Systemoutprintln("请输入(0-255)的整数!");
}
}
}
public static void main(String[] args) {
new RGB();
}
}
rgb三个参数的值为0-255,对应就是00-FF(这个是16进制的),所以可以直接从#FFFFFF得到rgb的值为:int r = 0xff ; int g = 0xff ; int b = 0xff ;(0x<零x>表示16进制晓得的吧)
BufferedImage 对象有个 getRGB(int x, int y) 方法
作用就是取得对应图像 x 与 y 坐标的像素点 rgb 值
如果只是比较的话,直接拿这个对象的 getRGB 与另一个对象的 getRGB 比较就可以了
如果需要取得具体的 rgb 值则需要一些位运算 *** 作
可以看看这篇回答
网页链接
java中获取Panel上某个像素点的像素颜色,代码如下:
public static void main(String[] args) {//创建一个150150,RGB高彩图,类型可自定
BufferedImage img=new BufferedImage(150, 150, BufferedImageTYPE_INT_rgb);
//取得图形
Graphics g=imggetGraphics();
//设置黑色(black)
gsetColor(ColorBLACK);
//填充颜色
gfillRect(0, 0, imggetWidth(), imggetHeight());
//在D盘创建个一个png格式
File file=new File("D:/zhidaopng");
try{
//以png方式写入,可改成jpg、gif等其它后缀
ImageIOwrite(img, "PNG", file);
}catch (IOException e){
eprintStackTrace();
}
//D盘上就生成了一个zhidaopng的黑色
}
给你贴出代码来示意使用swing中现成的调色板
import javaxswing;
import javaawt;
import javaawtevent;
/
@author Hardneedl
/
final class ColorChooserDemo extends JFrame {
public String getTitle() {return "ColorChooserDemo";}
static private final Dimension size = new Dimension(600,400);
public Dimension getPreferredSize() {return size;}
public Dimension getMaximumSize() {return size;}
public Dimension getMinimumSize() {return size;}
public Dimension getSize(){return size;}
private JButton button;
private class ColorAction extends AbstractAction{
private JColorChooser chooser;
private ColorAction() {super("select color");}
public void actionPerformed(ActionEvent e) {
Component cmp=(Component)egetSource();
if(chooser==null){
chooser=new JColorChooser( cmpgetBackground() );
}
cmpsetBackground( JColorChoosershowDialog(cmp,"select color",cmpgetBackground()) );
}
}
ColorChooserDemo() throws HeadlessException {
init();
attachListeners();
doLay();
}
private void init(){
button=new JButton(new ColorAction());
}
private void attachListeners(){
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
}
private void doLay(){
final Container container = getContentPane();
containeradd(button,BorderLayoutNORTH);
pack();
setVisible(true);
}
public static void main(Stringargs) {
SystemsetProperty("swingdefaultlaf","comsunjavaswingplafwindowsWindowsLookAndFeel");
SwingUtilitiesinvokeLater(
new Runnable(){
public void run() {
new ColorChooserDemo();
}
}
);
}
}
以上就是关于请问各位高手,在java中,如何实现输入RGB值改变颜色全部的内容,包括:请问各位高手,在java中,如何实现输入RGB值改变颜色、java 从#FFFFFF 得到颜色、Java问题,对图像进行 *** 作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)