public String[] generateTextFromPicture( BufferedImage im, int aCols )
	{
		Raster data = im.getData();
		
		StringBuffer ret = new StringBuffer("");
		
		double xresolution = im.getWidth() / (double)aCols;
		double yresolution = xresolution * sHeightToWidthRatio;
		
		int lRows = (int) (im.getHeight() / yresolution );
		int lCols = aCols;
		
		double [][] scores = new double[lRows][lCols];
		
		double min = 1;
		double max = 0;
		
		for ( int row = 0; row < lRows; row++ )
		{
			for ( int col = 0; col < lCols; col++ )
			{
				// determine character for this one
				int x0 = (int)(col * xresolution);
				int y0 = (int)(row * yresolution);
				int dx = (int) xresolution;
				int dy = (int) yresolution;
				
				
				double score = mPixelAnalyzer.getScoreOfSection(im, x0, y0, dx, dy);
				scores[row][col] = score;
				min = Math.min(score, min);
				max = Math.max(score,  max);
			}	
		}
		
		for ( int row = 0; row < lRows; row++ )
		{
			for ( int col = 0; col < lCols; col++ )
			{
				double score = scores[row][col];
				score -= min;
				score = score / ( max - min );

				mPixelAnalyzer.addScore(score);
				
				char c = mPixelAnalyzer.getBestCharacterForScore(score);
				ret.append(""+c);
				
			}
			ret.append( System.lineSeparator() );		
		}
		
		return ret.toString().split("\n");
		
	}