我在編輯一個BufferedImage。Java BufferedImage setRGB,getRGB錯誤
在改變圖片中的像素之後,我會進行檢查以確保新值符合我的預期。但是,他們沒有改變到指定的像素顏色!
我認爲這可能與Alpha值有關,所以我最近添加了一個步驟,從原始像素中提取Alpha值,並確保在創建新顏色時使用該值以插入回到圖片。
System.out.println(newColors[0] + ", " + newColors[1] + ", " + newColors[2]);
Color oldColor = new Color(image.getRGB(x, y));
Color newColor = new Color(newColors[0], newColors[1], newColors[2], oldColor.getAlpha()); // create a new color from the RGB values.
image.setRGB(x, y, newColor.getRGB());// set the RGB of the pixel in the image.
for (int col : getRGBs(x,y)) {
System.out.println(col);
}
getRGBs()
返回一個陣列,其中
- 索引0是紅值的方法
- 索引1是綠色
- 指數2爲藍色。
輸出看起來像:
206, 207, 207
204
203
203
正如你所看到的,值206, 207, 207
回來出來的圖像作爲204, 203, 203
- 事實上,我每次改像素回來了作爲204, 203, 203
。 我在做什麼錯?這只是沒有意義。 在此先感謝!
爲什麼不使用'image.getRGB(X,Y)後''image.setRGB(X,Y,newColor.getRGB());'檢查,如果顏色是好嗎?如果他們沒問題,那麼錯誤是在'getRGBs(x,y)'裏面' – Ezequiel 2014-10-28 13:09:06
發佈方法'getRGBs()'的代碼。可能是它有什麼問題。 – ortis 2014-10-28 13:13:53
getRGBs()只是你說的,Ezequiel。這就是問題所在,它會返回我沒有放入圖像中的數字!謝謝。 – monster 2014-10-28 16:21:37