witam,
mam napisac program ktory pozwoli zmieniac przezroczystosc obrazow. Mam taka metode
private void przezroczystosc(int procent)
{ int width=obraz1.getWidth(),height=obraz1.getHeight();
BufferedImage filteredImage = new BufferedImage(width,height, obraz1.getType());
WritableRaster raster = obraz1.getRaster(); //umozliwia operacje na pojedynczych pixelach
Color obraz[][] = new Color[width][height];
Color obrazwyj[][] = new Color[width][height];
ColorModel model = obraz1.getColorModel(); //dzieki temu mozemy obsluzyc wiele formatow plikow
Object data;int argb;
for(int x=0;x<width;x++)
{
for(int y=0;y<height;y++)
{
data= raster.getDataElements(x, y, null); //zwraca informacje o kolorze pixela
argb = model.getRGB(data);
obraz[x][y]=new Color(argb);
}
}
int i,j,k,l,red,green,blue;
for(i=0;i<width;i++){
for(j=0;j<height;j++){
red=0;green=0;blue=0;
red+=obraz[i][j].getRed();
green+=obraz[i][j].getGreen();
blue+=obraz[i][j].getBlue();
if(red>255)red=255;if(green>255)green=255;if(blue>255)blue=255;
if(red<0)red=0;if(green<0)green=0;if(blue<0)blue=0;
obrazwyj[i][j]=new Color(red,green,blue,1);
}
}
for(int x=1;x<width;x++)
{
for(int y=1;y<height;y++)
{
//obraz1=obrazwyj;
argb=obrazwyj[x][y].getRGB();
data = model.getDataElements(argb,null);
raster.setDataElements(x,y,data);
}
}
repaint();
}
i wlasciwie wszystko rozbija sie o linijke:
obrazwyj[i][j]=new Color(red,green,blue,1);
gdzie czwartym argumentem ma byc wartosc przezroczystoci.... jesli bawie sie kolorami wszystko dziala dobrze jednak tak jakby nie bral czwartego argumentu pod uwage, jaki by on nie byl.
z gory dzieki za jakies wskazowki.