public void doColorize( BufferedImage image )
	{
		int height = image.getHeight();
		int width;
	
		while( height-- != 0 )
		{
			width = image.getWidth();
			while( width-- != 0 )
			{
				Color color = new Color( image.getRGB( width, height ) );
			
				int lum = lum_red_lookup  [color.getRed  ()] +
			    		  lum_green_lookup[color.getGreen()] +
			    		  lum_blue_lookup [color.getBlue ()];
	
				if( lightness > 0 )
				{
					lum = (int)((double)lum * (100f - lightness) / 100f);
					lum += 255f - (100f - lightness) * 255f / 100f;
				}
				else if( lightness < 0 )
				{
					lum = (int)(((double)lum * lightness + 100f) / 100f);
				}
	
				if(lum > 255) lum = 255;
				
				Color final_color = new Color( final_red_lookup[lum],
	                                    	   final_green_lookup[lum],
	                                    	   final_blue_lookup[lum],
	                                    	   color.getAlpha() );
	
				image.setRGB( width, height, final_color.getRGB() );
			}
		}
	}