2
我正在創建一個簡單的程序,它接受一個灰度圖像作爲輸入,我只是想要做的是檢索每個像素的顏色信息,將其存儲在我稱爲PixelClass的對象數組中。最終目標僅僅是使用所述獲取的顏色信息將圖像重新繪製成新的BufferedImage。Java BufferedImage灰度退化
用於從給定圖像創建像素數組的代碼。
public static PixelClass[][] getPixelArray(BufferedImage bi){
int height = bi.getHeight();
int width = bi.getWidth();
PixelClass[][] pixelArray = new PixelClass[height][width];
for(int i = 0 ; i < height ; i++){
for(int j = 0 ; j < width ; j++){
pixelArray [i] [j] = new PixelClass(bi.getRGB(j, i));
}
}
return pixelArray;
}
代碼用於試圖重新繪製所述圖像,使用PixelClass對象的數組
public void paintToPanel(PixelClass [][] pc, int height, int width){
BufferedImage nbi = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
for (int i = 0 ; i < height ; i++){
for (int j = 0 ; j < width ; j++){
nbi.setRGB(j, i, pc[i][j].getRGBValue());
}
}
JLabel containerLabel = new JLabel(new ImageIcon(nbi));
containerLabel.setBounds(10,10,nbi.getHeight(), nbi.getWidth());
this.add(containerLabel);
}
鏈接到原始圖像
正如你可以看到有顯著圖像質量下降。生成的圖像顯得褪色。
您只提供一個圖像的鏈接,我認爲它是目標圖像。當你沒有任何東西可以比較時,很難看出任何可能的降級:) – 2011-01-21 14:49:08