java rgb是什么 java实现提取图片每一点的RGB
大家好,关于java rgb是什么很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于java实现提取图片每一点的RGB的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
java 怎么得到当前鼠标位置的颜色RGB值
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
public class GetRectPixel{
public GetRectPixel(){
ImageHolder holder= new ImageHolder();
JFrame frame= new JFrame();
JPanel panel= new JPanel();
panel.add(holder);
frame.getContentPane().add(panel);
frame.setSize(400,400);
frame.setVisible(true);
}
public static void main(String[] args){
GetPixel getpixel= new GetPixel();
}
}
class ImageHolder extends Canvas{
BufferedImage bi;//创建缓冲区图像
Image image;
MediaTracker mt;//创建媒体跟踪器
int imageWidth;//图像宽度
int imageHeight;//图像高度
public ImageHolder(){
mt=new MediaTracker(this);
try{
image= Toolkit.getDefaultToolkit().createImage("gigi3.jpg");
mt.addImage(image,0);
mt.waitForAll();//等待直到所有的图像都以完成装填
imageWidth= image.getWidth(this);//获得单前图像的宽度
imageHeight= image.getHeight(this);//获得当前图像的长度
}
catch(Exception e){}
bi= new BufferedImage(imageWidth,imageHeight,BufferedImage.TYPE_INT_RGB);
addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent me){
//获得鼠标当前位置的横,纵坐标
int mouseX=(int)me.getPoint().getX();
int mouseY=(int) me.getPoint().getY();
//获得该处的rgb值
getPixel(mouseX,mouseY);
}
});
setSize(imageWidth,imageHeight);
}
public void paint(Graphics g){
int xCenter=(getSize().width/ 2)-(imageWidth/ 2);
int yCenter=(getSize().height/ 2)-(imageHeight/ 2);
g.drawImage(image, xCenter, yCenter, imageWidth, imageHeight, this);
}
public void getPixel(int x,int y){
//获得ImageHolder的色彩模型
ColorModel cm= this.getColorModel();
//把象素形式的色彩组件(ImageHolder)以rgb的形式返回。
int rgb= cm.getRGB(x*y);
//分别获得其r,g,b值。
int red=(rgb>>16)&0xff;
int green=(rgb>>8)&0xff;
int blue=(rgb)&0xff;
System.out.println("("+red+","+green+","+blue+")");
}
}
java:image.ImageIO类的getRGB()方法,返回的是什么
java:image.ImageIO类的getRGB()方法返回的是一个整型数据。
这个方法可以从图片的指定区域读取ARGB像素值,并存储到rgbData数组中,rgbData中的数据是以0xAARRGGBB格式存储的,代表每个像素的颜色属性和透明属性。返回值就是RGB色彩。
RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。
java中方法new Color(80,197,197));是什么意思
构造方法摘要
Color(ColorSpace cspace, float[] components, float alpha)
创建具有 float数组中指定的颜色分量和指定的 alpha值的指定 ColorSpace中的颜色。
Color(float r, float g, float b)
创建具有指定红色、绿色和蓝色值的不透明的 sRGB颜色,这三个颜色值都在(0.0- 1.0)的范围内。
Color(float r, float g, float b, float a)
创建具有指定红色、绿色、蓝色和 alpha值的 sRGB颜色,这些值都在(0.0- 1.0)的范围内。
Color(int rgb)
创建具有指定组合的 RGB值的不透明的 sRGB颜色,此 sRGB值的 16-23位表示红色分量,8-15位表示绿色分量,0-7位表示蓝色分量。
Color(int rgba, boolean hasalpha)
创建具有指定组合的 RGBA值的 sRGB颜色,此 RGBA值的 24-31位表示 alpha分量,16-23位表示红色分量,8-15位表示绿色分量,0-7位表示蓝色分量。
Color(int r, int g, int b)
创建具有指定红色、绿色和蓝色值的不透明的 sRGB颜色,这些值都在(0- 255)的范围内。
Color(int r, int g, int b, int a)
创建具有指定红色、绿色、蓝色和 alpha值的 sRGB颜色,这些值都在(0- 255)的范围内。
此构造方法对应于倒数第二条。
java实现提取图片每一点的RGB
public class TestActionAction extends Action{
public void doSome(){
try{
//
//ImageIO.read("http://210.75.193.191:8080/Vector/4/3728/1275.png");
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;i<image.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;i<huabuwid;i++){
for(int j=0;j<huabuhid;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;i<huabuwid;i++){
for(int j=0;j<huabuhid;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;i<huabuwid;i++){
for(int j=0;j<huabuhid;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;i<huabuwid;i++){
for(int j=0;j<huabuhid;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();
}
}
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!