Witam!
Mam problem, z którym głowię się od dłuższego czasu, mianowicie daną mam tablicę o wartościach 0-255 i chciałbym najprostszym sposobem zmienić ją na obraz w 8-bitowej skali szarości (gdzie 0-czarny, 255-biały).
Wymyśliłem coś takiego:
public BufferedImage TabToImage(int tab[][]){
int i,j,m,n;
int pix[] = new int [w*h];
int index=0;
for (j = 0; j < h; j++){
for (i = 0; i < w; i++){
pix[index++] = (tab[i][j]<<24)|(tab[i][j]<<16)|(tab[i][j]<<8);
}
}
Image img = createImage(new MemoryImageSource(w,h,pix,0,w));
BufferedImage obraz = new BufferedImage(w,h, BufferedImage.TYPE_BYTE_GRAY);
Graphics2D g2 = obraz.createGraphics();
g2.drawImage(img,0,0,this);
return(obraz);
}
Ale nie działa to prawidłowo, otrzymywany obraz jest ciemniejszy niż powinien być.
Może znacie, jakieś proste panaceum na mój problem?
Pozdrawiam!