導航:首頁 > 編程語言 > 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相關的資料

熱點內容
華為伺服器如何進陣列卡配置 瀏覽:433
apache伺服器ip地址訪問 瀏覽:716
如何買到安卓手機預裝軟體 瀏覽:535
冤罪百度雲不要壓縮 瀏覽:83
蘇州雲存儲伺服器 瀏覽:173
解壓收納原聲 瀏覽:384
java注冊驗證 瀏覽:372
火花app怎麼上推薦 瀏覽:980
什麼app能游戲投屏到電視上 瀏覽:455
伺服器託管到雲端是什麼意思 瀏覽:835
app保存草稿怎麼用 瀏覽:808
安卓如何進入proumb 瀏覽:144
主機虛擬雲伺服器 瀏覽:619
刪除分區加密的空間會不會恢復 瀏覽:706
京東app客戶上門怎麼看搜索量 瀏覽:741
怎麼在農行app購買黃金 瀏覽:46
c型開發板和單片機 瀏覽:146
虛擬機建立用戶的模板文件夾 瀏覽:904
無錫代碼編程培訓班 瀏覽:632
eps圖形數據加密 瀏覽:933