SWT - Modificar brilho de uma imagem

Estou tentando modificar brilho de uma imagem SWT e não consegui.
Não sei qual é o algoritmo para se modificar brilho e também não achei nada especifico.

Consegui apenas convertendo a imagem SWT para AWT e convertendo novamente, porém esta lento e gostaria de fazer direto.

Se alguem puder me ajudar.

Segue trecho do código.

BufferedImage buffImg = SWTImageUtil.convertToAWT(screenshot.getImageData()); RescaleOp rescaleOp = new RescaleOp(0.7f, 15, null); rescaleOp.filter(buffImg, buffImg); filteredImageData = SWTImageUtil.convertToSWT(buffImg);

Seguinte.

Descobri que para modificar o brilho (diminuir por exemplo), basta obter as cores RGB (vermelho, verde e azul) e diminui-las proporcionalmente.
Desenvolvi então um algoritmo que percorre os pixels da imagem e chega no resultado que preciso baseado em uma variação de brilho.
Esta levando em torno de 0.17 segundos para executar.

Para executar o mesmo.

Criar uma classe utilitária e adicionar o método darkImage.

	  public static ImageData darkImage(ImageData imageData, float variacaoBrilho) {
		  PaletteData palette = imageData.palette;
		  ImageData imgRet = new ImageData(imageData.width, 
				  					imageData.height, imageData.depth, palette);
		  for (int x = 0; x < imageData.width; x++) {
			  for (int y = 0; y < imageData.height; y++) {
				  	int pixel = imageData.getPixel(x, y);
				  	RGB rgbPixel = palette.getRGB(pixel);
				  
					int reds = rgbPixel.red >> 1;
					int greens = rgbPixel.green >> 1;
					int blues = rgbPixel.blue >> 1;
					  
					int pixelTrat = palette.getPixel(
							new RGB(reds + ((int) (reds / variacaoBrilho)), 
									greens + ((int) (greens / variacaoBrilho)), 
									blues + ((int) (blues / variacaoBrilho))));
						  
					imgRet.setPixel(x, y, pixelTrat);
			  }
		  }
		  return imgRet;
	  }

A principio resolveu meu problema, mas se alguem tiver alguma idéia para otimização, por favor acrescente aqui.