导航:首页 > 编程语言 > java获取图片rgb

java获取图片rgb

发布时间:2022-06-29 16:57:04

java:image.ImageIO类的getRGB()方法,返回的是什么

java:image.ImageIO类的getRGB()方法返回的是一个整型数据。
这个方法可以从图片的指定区域读取ARGB像素值,并存储到rgbData数组中,rgbData中的数据是以0xAARRGGBB格式存储的,代表每个像素的颜色属性和透明属性。返回值就是RGB色彩。
RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。

㈡ 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();
}
}

㈢ 学JAVA的时候知道一个图片有一个整型的type对应类型,比如TYPE_INT_RGB是1,那么这个类型是JAVA专用的么

TYPE_INT_RGB等的值时表示图片类型的常量,其实就是一个整数。而getType()方法是图像类的方法,获取到图像类型,并返回表示对应类型的那个数。这些都是基于java类库的。其他的程序依照其类库,可能相同,也可能不同。比如你说的TYPE_INT_RGB是1表示Java中,1这个数表示RGB图片,别的语言可以用2、3这些数或者double,String等其他类型去表示,同样的,geType这个方法是根据语言不通,方法名有所差异的。建议查找对应语言的API。

㈣ java 做彩色图像加密,提取rgb并改变rgb值,重组新的图片,加密没问题 ,解密时getRGB()返回值不正确

rgb加alpha值为32位,一般的加密算法范围数值超过此范围,数据会溢出,因此无法解回。
解决方案:找32位到32位的加密算法

㈤ 给定一幅图像,用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值

robot类里面有一个方法能获取屏幕像素
robot.getPixelColor(int x, int y)
返回color 对象
然后color 对象里面有一个方法返回rgb值
color.getRGB()

㈦ 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获取图片RGB的方法有哪些

返回值是RGB颜色,首先,你必须知道什么是RGB。 RGB色彩模式是行业标准,是一种颜色,以获得各种不同的颜色,红色(R),绿色(G),蓝(B)三种颜色中的信道变化,以及它们的相互叠加,RGB代表红色,绿色和蓝色的颜色的三个通道,此标准还包括几乎所有的人眼能够感知的颜色的最广泛使用的表色系统,是一个。
和然后它来自该方法,该方法可以被读出的指定区域的图像的ARGB像素值,和专卖店rgbData阵列,一个数据rgbData是基于0xAARRGGBB的格式存储,来表示每个像素的色彩性能和透明度的属性。所以,你应该了解它。

㈨ Java实现根据分量计算rgb值,并分离rgb分量

要看清是RGB、还是BGR、、、、另外java中的byte再转成int时是会使用补数的(即是看到是负的)

int R = (pixel>>16) & 0xff;
int G = (pixel>>8) & 0xff;
int B = (pixel & 0xff);

㈩ java 根据图片的rgb求灰度值

public int filterRGB(int x, int y, int rgb) {

int a = rgb & 0xff000000;//将最高位(24-31)的信息(alpha通道)存储到a变量
int r = (rgb >> 16) & 0xff;//取出次高位(16-23)红色分量的信息
int g = (rgb >> 8) & 0xff;//取出中位(8-15)绿色分量的信息
int b = rgb & 0xff;//取出低位(0-7)蓝色分量的信息
rgb = (r * 77 + g * 151 + b * 28) >> 8; // NTSC luma,算出灰度值
return a | (rgb << 16) | (rgb << 8) | rgb;//将灰度值送入各个颜色分量
}

阅读全文

与java获取图片rgb相关的资料

热点内容
苹果手机怎么会显示多个App 浏览:237
不去互联网程序员 浏览:550
电脑qq邮箱解压的图片保存在哪里 浏览:544
嵌入命令行 浏览:91
档案为什么被加密 浏览:486
十天学会单片机13 浏览:875
荣耀怎么设置让app一直运行 浏览:993
共享文件夹能在哪里找到 浏览:435
旅游订旅店用什么app 浏览:240
一个女程序员的声音 浏览:496
魔术app怎么用 浏览:340
单片机有4个8位的io口 浏览:897
win10rar解压缩软件 浏览:169
plc教程pdf 浏览:668
pythonshell清屏命令 浏览:281
检测到加密狗注册服务器失败 浏览:205
解压后手机如何安装 浏览:521
极客学院app为什么下架 浏览:14
图片批量压缩绿色版 浏览:656
东北程序员帅哥 浏览:709