程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 圖像處理-用JAVA將彩色圖像變為灰度圖像

圖像處理-用JAVA將彩色圖像變為灰度圖像

編輯:編程綜合問答
用JAVA將彩色圖像變為灰度圖像

public int[] toGray(int[] pix, int iw, int ih)

{

ColorModel cm = ColorModel.getRGBdefault();

int r, g, b, gray;

    for(int i = 0; i < iw*ih; i++)     
    {             
        r = cm.getRed(pix[i]);  
        g = cm.getGreen(pix[i]);  
        b = cm.getBlue(pix[i]);   
        gray =(int)((r + g + b) / 3);  
        pix[i] = 255 << 24|gray << 16|gray << 8|gray;  
    }         
    return pix;  
}     

    這段代碼中pix[i] = 255 << 24|gray << 16|gray << 8|gray是什麼意思?

最佳回答:


顏色是ARGB,每種占8個字節也就是AAAA AAAA RRRR RRRR GGGG GGGG BBBB BBBB
gray =(int)((r + g + b) / 3); 介於0-255之間。
255 << 24|gray << 16|gray << 8|gray;是重新組成ARGB格式。
255左移24位。就是AAAA AAAA的位置
gray 左移16位,就是RRRR RRRR的位置
gray 左移8位,就是GGGG GGGG的位置
gray,就是BBBB BBBB的位置

danielinbiti
chaoshengmingyue
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved